Example #1
0
class TestLoaderGroups(TestLoaderBase):
    @classmethod
    def setup_class(self):
        super(TestLoaderGroups, self).setup_class()
        self.loader = ReplaceByNameLoader(self.testclient)

        assert count_pkgs() == 0, count_pkgs()
        pkg_dicts = [{'name':u'pkga'},
                     {'name':u'pkgb'},
                     {'name':u'pkgc'},
                     ]
        CreateTestData.create_arbitrary(pkg_dicts)
        group_dicts = [
            {'name':u'g1', 'packages':[u'pkga']},
            {'name':u'g2'},
            {'name':u'g3'},
            ]
        CreateTestData.create_groups(group_dicts, USER)
        self.pkgs = [model.Package.by_name(pkg_dict['name']) \
                     for pkg_dict in pkg_dicts]
        self.pkg_ids = [pkg.id for pkg in self.pkgs]
        
    # teardown is in the base class

    def test_0_add_to_empty_group(self):
        pkg_name = u'pkga'
        group_name = u'g2'
        pkg = model.Package.by_name(pkg_name)
        group = model.Group.by_name(group_name)
        assert group
        assert not group.packages, group.packages
        self.loader.add_pkg_to_group(pkg.name, group.name)
        group = model.Group.by_name(group_name)
        pkg = model.Package.by_name(pkg_name)
        assert group.packages == [pkg], group.packages
        
    def test_1_add_to_non_empty_group(self):
        pkg_name = u'pkgb'
        group_name = u'g1'
        pkg = model.Package.by_name(pkg_name)
        group = model.Group.by_name(group_name)
        assert group
        assert len(group.packages) == 1, group.packages
        self.loader.add_pkg_to_group(pkg.name, group.name)
        group = model.Group.by_name(group_name)
        pkg = model.Package.by_name(pkg_name)
        assert pkg in group.packages, group.packages
        assert len(group.packages) == 2, group.packages

    def test_2_add_multiple_packages(self):
        pkg_names = [u'pkgb', u'pkgc']
        group_name = u'g2'
        pkgs = [model.Package.by_name(pkg_name) for pkg_name in pkg_names]
        group = model.Group.by_name(group_name)
        assert group
        num_pkgs_at_start = len(group.packages)
        assert num_pkgs_at_start in (0, 1), group.packages
        self.loader.add_pkgs_to_group(pkg_names, group.name)
        group = model.Group.by_name(group_name)
        pkgs = [model.Package.by_name(pkg_name) for pkg_name in pkg_names]
        for pkg in pkgs:
            assert pkg in group.packages, group.packages
        assert len(group.packages) == num_pkgs_at_start + 2, group.packages

    def test_3_add_to_missing_group(self):
        pkg_names = [u'pkgb', u'pkgc']
        try:
            self.loader.add_pkgs_to_group(pkg_names, 'random_name')
        except LoaderError, e:
            assert e.args[0] == 'Group named \'random_name\' does not exist', e.args
        else:
Example #2
0
class TestLoaderGroups(TestLoaderBase):
    @classmethod
    def setup_class(self):
        super(TestLoaderGroups, self).setup_class()
        self.loader = ReplaceByNameLoader(self.testclient)

        assert count_pkgs() == 0, count_pkgs()
        pkg_dicts = [
            {
                'name': u'pkga'
            },
            {
                'name': u'pkgb'
            },
            {
                'name': u'pkgc'
            },
        ]
        CreateTestData.create_arbitrary(pkg_dicts)
        group_dicts = [
            {
                'name': u'g1',
                'packages': [u'pkga']
            },
            {
                'name': u'g2'
            },
            {
                'name': u'g3'
            },
        ]
        CreateTestData.create_groups(group_dicts, USER)
        self.pkgs = [model.Package.by_name(pkg_dict['name']) \
                     for pkg_dict in pkg_dicts]
        self.pkg_ids = [pkg.id for pkg in self.pkgs]

    # teardown is in the base class

    def test_0_add_to_empty_group(self):
        pkg_name = u'pkga'
        group_name = u'g2'
        pkg = model.Package.by_name(pkg_name)
        group = model.Group.by_name(group_name)
        assert group
        assert not group.packages, group.packages
        self.loader.add_pkg_to_group(pkg.name, group.name)
        group = model.Group.by_name(group_name)
        pkg = model.Package.by_name(pkg_name)
        assert group.packages == [pkg], group.packages

    def test_1_add_to_non_empty_group(self):
        pkg_name = u'pkgb'
        group_name = u'g1'
        pkg = model.Package.by_name(pkg_name)
        group = model.Group.by_name(group_name)
        assert group
        assert len(group.packages) == 1, group.packages
        self.loader.add_pkg_to_group(pkg.name, group.name)
        group = model.Group.by_name(group_name)
        pkg = model.Package.by_name(pkg_name)
        assert pkg in group.packages, group.packages
        assert len(group.packages) == 2, group.packages

    def test_2_add_multiple_packages(self):
        pkg_names = [u'pkgb', u'pkgc']
        group_name = u'g2'
        pkgs = [model.Package.by_name(pkg_name) for pkg_name in pkg_names]
        group = model.Group.by_name(group_name)
        assert group
        num_pkgs_at_start = len(group.packages)
        assert num_pkgs_at_start in (0, 1), group.packages
        self.loader.add_pkgs_to_group(pkg_names, group.name)
        group = model.Group.by_name(group_name)
        pkgs = [model.Package.by_name(pkg_name) for pkg_name in pkg_names]
        for pkg in pkgs:
            assert pkg in group.packages, group.packages
        assert len(group.packages) == num_pkgs_at_start + 2, group.packages

    def test_3_add_to_missing_group(self):
        pkg_names = [u'pkgb', u'pkgc']
        try:
            self.loader.add_pkgs_to_group(pkg_names, 'random_name')
        except LoaderError, e:
            assert e.args[
                0] == 'Group named \'random_name\' does not exist', e.args
        else: