Esempio n. 1
0
    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)
Esempio n. 2
0
    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())
Esempio n. 3
0
    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)