예제 #1
0
    def test_categories(self):
        # Test
        report = UpgradeStepReport()
        result = units._package_group_categories(self.v1_test_db.database, self.tmp_test_db.database, report)

        # Verify
        self.assertTrue(result)

        v1_repo_category_tuples = []
        for v1_repo in self.v1_test_db.database.repos.find({}, {"id": 1, "packagegroupcategories": 1}):
            for categoryid in v1_repo["packagegroupcategories"].keys():
                v1_repo_category_tuples.append((v1_repo["id"], categoryid))

        v2_repo_category_tuples = [
            (x["repo_id"], x["id"])
            for x in self.tmp_test_db.database.units_package_category.find({}, {"repo_id": 1, "id": 1})
        ]

        v1_repo_category_tuples.sort()
        v2_repo_category_tuples.sort()
        self.assertEqual(v1_repo_category_tuples, v2_repo_category_tuples)

        for v1_repo in self.v1_test_db.database.repos.find({}, {"id": 1, "packagegroupcategories": 1}):
            for category_id in v1_repo.get("packagegroupcategories", {}).keys():
                # Verify the categories themselves
                v1_category = v1_repo["packagegroupcategories"][category_id]
                v2_category = self.tmp_test_db.database.units_package_category.find_one(
                    {"repo_id": v1_repo["id"], "id": category_id}
                )
                self.assertTrue(v2_category is not None)

                self.assertTrue(isinstance(v2_category["_id"], basestring))
                self.assertEqual(v2_category["_storage_path"], None)
                self.assertEqual(v2_category["_content_type_id"], "package_category")

                for k in (
                    "description",
                    "display_order",
                    "id",
                    "name",
                    "packagegroupids",
                    "translated_description",
                    "translated_name",
                ):
                    self.assertEqual(v2_category[k], v1_category[k])

                # Make sure an association exists
                ass_query = {
                    "repo_id": v1_repo["id"],
                    "unit_id": v2_category["_id"],
                    "unit_type_id": "package_category",
                }
                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)
예제 #2
0
    def test_categories_idempotency(self):
        # Test
        report = UpgradeStepReport()
        units._package_group_categories(self.v1_test_db.database, self.tmp_test_db.database, report)
        result = units._package_group_categories(self.v1_test_db.database, self.tmp_test_db.database, report)

        # Verify - Simple Count Tests
        self.assertTrue(result)

        # Make sure the categories weren't duplicated
        v1_count = 0
        for v1_repo in self.v1_test_db.database.repos.find({}, {'id' : 1, 'packagegroupcategories' : 1}):
            v1_count += len(v1_repo['packagegroupcategories'].keys())

        v2_count = self.tmp_test_db.database.units_package_category.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, 'packagegroupcategories' : 1}):
            expected_group_count = len(v1_repo['packagegroupcategories'])
            associations = self.tmp_test_db.database.repo_content_units.find({'repo_id' : v1_repo['id']})
            self.assertEqual(expected_group_count, associations.count())
예제 #3
0
    def test_categories(self):
        # Test
        report = UpgradeStepReport()
        result = units._package_group_categories(self.v1_test_db.database, self.tmp_test_db.database, report)

        # Verify
        self.assertTrue(result)

        v1_repo_category_tuples = []
        for v1_repo in self.v1_test_db.database.repos.find({}, {'id' : 1, 'packagegroupcategories' : 1}):
            for categoryid in v1_repo['packagegroupcategories'].keys():
                v1_repo_category_tuples.append( (v1_repo['id'], categoryid) )

        v2_repo_category_tuples = [ (x['repo_id'], x['id']) for x in
                                 self.tmp_test_db.database.units_package_category.find({}, {'repo_id': 1, 'id' : 1}) ]

        v1_repo_category_tuples.sort()
        v2_repo_category_tuples.sort()
        self.assertEqual(v1_repo_category_tuples, v2_repo_category_tuples)

        for v1_repo in self.v1_test_db.database.repos.find({}, {'id' : 1, 'packagegroupcategories' : 1}):
            for category_id in v1_repo.get('packagegroupcategories', {}).keys():
                # Verify the categories themselves
                v1_category = v1_repo['packagegroupcategories'][category_id]
                v2_category = self.tmp_test_db.database.units_package_category.find_one({'repo_id' : v1_repo['id'], 'id' : category_id})
                self.assertTrue(v2_category is not None)

                self.assertTrue(isinstance(v2_category['_id'], basestring))
                self.assertEqual(v2_category['_storage_path'], None)
                self.assertEqual(v2_category['_content_type_id'], 'package_category')

                for k in ('description', 'display_order', 'id', 'name',
                          'packagegroupids', 'translated_description',
                          'translated_name'):
                    self.assertEqual(v2_category[k], v1_category[k])

                # Make sure an association exists
                ass_query = {'repo_id' : v1_repo['id'],
                             'unit_id' : v2_category['_id'],
                             'unit_type_id' : 'package_category'}
                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)