service: artifacts, binhost: Correct chroot/sysroot paths for bundling

We shouldn't be joining or un-prefixing chroot.path; let chroot_lib do
the work.

Notes for CreateChromePackageIndexTest: CreateChromePackageIndex()
actually expects an inside-chroot path in its Sysroot() parameter (I
know, it's unclear how to use this class...), and does chroot_lib
translation on it. The lack of IsInsideChroot mocking meant that the
test would pass anyway, as chroot_lib skips the double-translation. In
other words, I'm fixing the mocking (so the test believes it's outside
the chroot, as the code is intended to run), and then fixing up the
inputs/expectations to match reality.

BUG=b:265885353
TEST=./run_tests

Change-Id: Id384f94db1cec9fb5dd89cd0a75d0ddfa608c120
Reviewed-on: https://chromium-review.googlesource.com/c/chromiumos/chromite/+/4661949
Commit-Queue: Brian Norris <briannorris@chromium.org>
Tested-by: Brian Norris <briannorris@chromium.org>
Reviewed-by: Greg Edelston <gredelston@google.com>
diff --git a/api/controller/artifacts.py b/api/controller/artifacts.py
index b3511a2..14190c4 100644
--- a/api/controller/artifacts.py
+++ b/api/controller/artifacts.py
@@ -611,7 +611,7 @@
     )
     chroot = controller_util.ParseChroot(input_proto.chroot)
     # Sysroot.path needs to be the fully qualified path, including the chroot.
-    full_sysroot_path = os.path.join(chroot.path, sysroot_path.lstrip(os.sep))
+    full_sysroot_path = chroot.full_path(sysroot_path)
     sysroot = sysroot_lib.Sysroot(full_sysroot_path)
 
     # Check that the sysroot exists before we go on.