def test_groups(self): # Test report = UpgradeStepReport() result = units._package_groups(self.v1_test_db.database, self.tmp_test_db.database, report) # Verify self.assertTrue(result) v1_repo_group_tuples = [] for v1_repo in self.v1_test_db.database.repos.find({}, {"id": 1, "packagegroups": 1}): for group_id in v1_repo["packagegroups"].keys(): v1_repo_group_tuples.append((v1_repo["id"], group_id)) v2_repo_group_tuples = [ (x["repo_id"], x["id"]) for x in self.tmp_test_db.database.units_package_group.find({}, {"repo_id": 1, "id": 1}) ] v1_repo_group_tuples.sort() v2_repo_group_tuples.sort() self.assertEqual(v1_repo_group_tuples, v2_repo_group_tuples) for v1_repo in self.v1_test_db.database.repos.find({}, {"id": 1, "packagegroups": 1}): for group_id in v1_repo.get("packagegroups", {}).keys(): # Verify the group itself v1_group = v1_repo["packagegroups"][group_id] v2_group = self.tmp_test_db.database.units_package_group.find_one( {"repo_id": v1_repo["id"], "id": group_id} ) self.assertTrue(v2_group is not None) self.assertTrue(isinstance(v2_group["_id"], basestring)) self.assertEqual(v2_group["_storage_path"], None) self.assertEqual(v2_group["_content_type_id"], "package_group") for k in ( "conditional_package_names", "default", "default_package_names", "description", "display_order", "id", "langonly", "mandatory_package_names", "name", "optional_package_names", "translated_description", "translated_name", "user_visible", ): self.assertEqual(v1_group[k], v2_group[k], msg="Incorrect key: %s" % k) # Make sure an association exists ass_query = {"repo_id": v1_repo["id"], "unit_id": v2_group["_id"], "unit_type_id": "package_group"} association = self.tmp_test_db.database.repo_content_units.find_one(ass_query) self.assertTrue(association is not None) self.assertEqual(association["owner_type"], units.DEFAULT_OWNER_TYPE) self.assertEqual(association["owner_id"], units.DEFAULT_OWNER_ID) self.assertEqual(association["created"], units.DEFAULT_CREATED) self.assertEqual(association["updated"], units.DEFAULT_UPDATED)
def test_groups_idempotency(self): # Test report = UpgradeStepReport() units._package_groups(self.v1_test_db.database, self.tmp_test_db.database, report) result = units._package_groups(self.v1_test_db.database, self.tmp_test_db.database, report) # Verify - Simple Count Tests self.assertTrue(result) # Make sure the groups weren't duplicated v1_count = 0 for v1_repo in self.v1_test_db.database.repos.find({}, {'id' : 1, 'packagegroups' : 1}): v1_count += len(v1_repo['packagegroups'].keys()) v2_count = self.tmp_test_db.database.units_package_group.find().count() self.assertEqual(v1_count, v2_count) # Make sure the associations weren't duplicated for v1_repo in self.v1_test_db.database.repos.find({}, {'id' : 1, 'packagegroups' : 1}): expected_group_count = len(v1_repo['packagegroups']) associations = self.tmp_test_db.database.repo_content_units.find({'repo_id' : v1_repo['id']}) self.assertEqual(expected_group_count, associations.count())
def test_groups(self): # Test report = UpgradeStepReport() result = units._package_groups(self.v1_test_db.database, self.tmp_test_db.database, report) # Verify self.assertTrue(result) v1_repo_group_tuples = [] for v1_repo in self.v1_test_db.database.repos.find({}, {'id' : 1, 'packagegroups' : 1}): for group_id in v1_repo['packagegroups'].keys(): v1_repo_group_tuples.append( (v1_repo['id'], group_id) ) v2_repo_group_tuples = [ (x['repo_id'], x['id']) for x in self.tmp_test_db.database.units_package_group.find({}, {'repo_id': 1, 'id' : 1}) ] v1_repo_group_tuples.sort() v2_repo_group_tuples.sort() self.assertEqual(v1_repo_group_tuples, v2_repo_group_tuples) for v1_repo in self.v1_test_db.database.repos.find({}, {'id' : 1, 'packagegroups' : 1}): for group_id in v1_repo.get('packagegroups', {}).keys(): # Verify the group itself v1_group = v1_repo['packagegroups'][group_id] v2_group = self.tmp_test_db.database.units_package_group.find_one({'repo_id' : v1_repo['id'], 'id' : group_id}) self.assertTrue(v2_group is not None) self.assertTrue(isinstance(v2_group['_id'], basestring)) self.assertEqual(v2_group['_storage_path'], None) self.assertEqual(v2_group['_content_type_id'], 'package_group') for k in ('conditional_package_names', 'default', 'default_package_names', 'description', 'display_order', 'id', 'langonly', 'mandatory_package_names', 'name', 'optional_package_names', 'translated_description', 'translated_name', 'user_visible'): self.assertEqual(v1_group[k], v2_group[k], msg='Incorrect key: %s' % k) # Make sure an association exists ass_query = {'repo_id' : v1_repo['id'], 'unit_id' : v2_group['_id'], 'unit_type_id' : 'package_group'} association = self.tmp_test_db.database.repo_content_units.find_one(ass_query) self.assertTrue(association is not None) self.assertEqual(association['owner_type'], units.DEFAULT_OWNER_TYPE) self.assertEqual(association['owner_id'], units.DEFAULT_OWNER_ID) self.assertEqual(association['created'], units.DEFAULT_CREATED) self.assertEqual(association['updated'], units.DEFAULT_UPDATED)