def testListResponse(self): """Test calls helper method with correct args.""" mock_get_deps = self.PatchObject( dependency_service, 'GetDependencies', return_value=['foo/bar-1.2.3']) sysroot = sysroot_pb2.Sysroot( path=self.sysroot, build_target=self.build_target) path = '/path' package = common_pb2.PackageInfo(category='foo', package_name='bar') input_proto = depgraph_pb2.ListRequest( sysroot=sysroot, src_paths=[ depgraph_pb2.SourcePath(path='/path'), ], packages=[package]) dependency.List(input_proto, self.response, self.api_config) mock_get_deps.assert_called_once_with( self.sysroot, build_target=controller_util.ParseBuildTarget(self.build_target), src_paths=[path], packages=[controller_util.PackageInfoToCPV(package)]) expected_deps = [ common_pb2.PackageInfo( category='foo', package_name='bar', version='1.2.3') ] self.assertCountEqual(expected_deps, self.response.package_deps)
def testNoPackageName(self): """Test no package name given.""" pi = common_pb2.PackageInfo() pi.category = 'cat' pi.version = '2.0.0' self.assertIsNone(controller_util.PackageInfoToCPV(pi))
def testPackageOnly(self): """Test no version provided.""" pi = common_pb2.PackageInfo() pi.package_name = 'pkg' cpv_str = controller_util.PackageInfoToString(pi) self.assertEqual('pkg', cpv_str)
def _GetBestVisibleResponse(_input_proto, output_proto, _config): """Add fake paths to a successful GetBestVisible response.""" package_info = common_pb2.PackageInfo( category='category', package_name='name', version='1.01', ) output_proto.package_info.CopyFrom(package_info)
def testPackageOnly(self): """Test handling when only given the package name.""" pi = common_pb2.PackageInfo() cpv = portage_util.SplitCPV('pkg', strict=False) controller_util.CPVToPackageInfo(cpv, pi) self.assertEqual('', pi.category) self.assertEqual('pkg', pi.package_name) self.assertEqual('', pi.version)
def testNoVersion(self): """Test no version provided.""" pi = common_pb2.PackageInfo() pi.package_name = 'pkg' pi.category = 'cat' cpv_str = controller_util.PackageInfoToString(pi) self.assertEqual('cat/pkg', cpv_str)
def testNoVersion(self): """Test handling when no version given.""" pi = common_pb2.PackageInfo() cpv = portage_util.SplitCPV('cat/pkg', strict=False) controller_util.CPVToPackageInfo(cpv, pi) self.assertEqual('cat', pi.category) self.assertEqual('pkg', pi.package_name) self.assertEqual('', pi.version)
def testAllFields(self): """Test handling when all fields present.""" pi = common_pb2.PackageInfo() cpv = portage_util.SplitCPV('cat/pkg-2.0.0', strict=False) controller_util.CPVToPackageInfo(cpv, pi) self.assertEqual('cat', pi.category) self.assertEqual('pkg', pi.package_name) self.assertEqual('2.0.0', pi.version)
def GetBestVisible(input_proto, output_proto, _config): """Returns the best visible PackageInfo for the indicated atom.""" build_target = None if input_proto.build_target.name: build_target = controller_util.ParseBuildTarget(input_proto.build_target) cpv = packages.get_best_visible(input_proto.atom, build_target=build_target) package_info = common_pb2.PackageInfo() controller_util.CPVToPackageInfo(cpv, package_info) output_proto.package_info.CopyFrom(package_info)
def testAllFields(self): """Test all fields present.""" pi = common_pb2.PackageInfo() pi.package_name = 'pkg' pi.category = 'cat' pi.version = '2.0.0' cpv_str = controller_util.PackageInfoToString(pi) self.assertEqual('cat/pkg-2.0.0', cpv_str)
def testAllFields(self): """Quick sanity check it's working properly.""" pi = common_pb2.PackageInfo() pi.package_name = 'pkg' pi.category = 'cat' pi.version = '2.0.0' cpv = controller_util.PackageInfoToCPV(pi) self.assertEqual('pkg', cpv.package) self.assertEqual('cat', cpv.category) self.assertEqual('2.0.0', cpv.version)
def testBuildsChromeWithPackages(self): """Test successful call with packages handling.""" patch = self.PatchObject(packages_service, 'builds', return_value=True) package = common_pb2.PackageInfo( category='category', package_name='name', version='1.01', ) request = self._GetRequest(board='foo', packages=[package]) packages_controller.BuildsChrome(request, self.response, self.api_config) self.assertTrue(self.response.builds_chrome) patch.assert_called_once_with(constants.CHROME_CP, build_target_lib.BuildTarget('foo'), [controller_util.PackageInfoToCPV(package)])
def _InputProto(self, build_target=None, chroot_path=None, pkg_list=None): """Helper to build and input proto instance.""" # pkg_list will be a list of category/package strings such as # ['virtual/target-fuzzers']. if pkg_list: package_list = [] for pkg in pkg_list: pkg_string_parts = pkg.split('/') package_info_msg = common_pb2.PackageInfo( category=pkg_string_parts[0], package_name=pkg_string_parts[1]) package_list.append(package_info_msg) else: package_list = [] return sysroot_pb2.SysrootGenerateArchiveRequest( build_target={'name': build_target}, chroot={'path': chroot_path}, packages=package_list)
def testCallsCommandCorrectly(self): """Test that commands.MarkAndroidAsStable is called correctly.""" self.input_proto.android_version = 'android-version' self.uprev.return_value = 'cat/android-1.2.3' atom = common_pb2.PackageInfo() atom.category = 'cat' atom.package_name = 'android' atom.version = '1.2.3' android.MarkStable(self.input_proto, self.response, self.api_config) self.uprev.assert_called_once_with( tracking_branch=self.input_proto.tracking_branch, android_package=self.input_proto.package_name, android_build_branch=self.input_proto.android_build_branch, chroot=mock.ANY, build_targets=self.build_targets, android_version=self.input_proto.android_version) self.assertEqual(self.response.android_atom, atom) self.assertEqual(self.response.status, android_pb2.MARK_STABLE_STATUS_SUCCESS)
def testHandlesPinnedUprevError(self): """Test that pinned error is handled correctly.""" self.input_proto.android_version = 'android-version' self.uprev.side_effect = packages.AndroidIsPinnedUprevError( 'pin/xx-1.1') atom = common_pb2.PackageInfo() atom.category = 'pin' atom.package_name = 'xx' atom.version = '1.1' android.MarkStable(self.input_proto, self.response, self.api_config) self.uprev.assert_called_once_with( tracking_branch=self.input_proto.tracking_branch, android_package=self.input_proto.package_name, android_build_branch=self.input_proto.android_build_branch, chroot=mock.ANY, build_targets=self.build_targets, android_version=self.input_proto.android_version) self.assertEqual(self.response.android_atom, atom) self.assertEqual(self.response.status, android_pb2.MARK_STABLE_STATUS_PINNED)
def testGetBuildDependencyGraphForPackages(self): """GetBuildDependencyGraph calls helper method with correct args.""" get_dep = self.PatchObject( dependency_service, 'GetBuildDependency', return_value=(self.json_deps, self.json_deps)) pkg_mock = 'package-CPV' pkg_to_cpv = self.PatchObject( controller_util, 'PackageInfoToCPV', return_value=pkg_mock) package = common_pb2.PackageInfo( package_name='chromeos-chrome', category='chromeos-base') input_proto = depgraph_pb2.GetBuildDependencyGraphRequest( build_target=common_pb2.BuildTarget(name='target'), packages=[package] ) dependency.GetBuildDependencyGraph(input_proto, self.response, self.api_config) self.assertEqual(self.response.dep_graph.build_target.name, 'deathstar') pkg_to_cpv.assert_called_once_with(package) get_dep.assert_called_once_with('/build/target', 'target', (pkg_mock,))
def testNoPackageName(self): """Test no package name given.""" pi = common_pb2.PackageInfo() with self.assertRaises(ValueError): controller_util.PackageInfoToString(pi)