Ejemplo n.º 1
0
    def test_get_all_rules_for_version(self):
        """Testing PackageChannel.get_all_rules_for_version"""
        bundle = PackageBundle(manifest_url='packages/TestPackage/index.json')

        channel = PackageChannel(
            bundle=bundle,
            name='1.0.x',
            created_timestamp=datetime(2015, 10, 11, 8, 17, 29, 958569),
            last_updated_timestamp=datetime(2015, 10, 12, 8, 17, 29, 958569))
        channel._loaded = True

        rules1 = PackageRules(channel=channel,
                              version_range='*',
                              package_type='python',
                              package_name='TestPackage',
                              systems=['*'])
        rules2 = PackageRules(channel=channel,
                              version_range='>=1.0',
                              package_type='python',
                              package_name='TestPackage',
                              systems=['*'])
        rules3 = PackageRules(channel=channel,
                              version_range='>=1.0,<=2.0',
                              package_type='python',
                              package_name='TestPackage',
                              systems=['*'])
        rules4 = PackageRules(channel=channel,
                              version_range='<=2.0',
                              package_type='python',
                              package_name='TestPackage',
                              systems=['*'])
        rules5 = PackageRules(channel=channel,
                              version_range='>=4.0',
                              package_type='python',
                              package_name='TestPackage',
                              systems=['*'])
        rules6 = PackageRules(channel=channel,
                              version_range='<1.0',
                              package_type='python',
                              package_name='TestPackage',
                              systems=['*'])
        channel._package_rules = [
            rules1, rules2, rules3, rules4, rules5, rules6
        ]

        self.assertEqual(
            channel.get_all_rules_for_version('1.0',
                                              require_current_system=False),
            [rules1, rules2, rules3, rules4])
Ejemplo n.º 2
0
    def test_get_all_rules_for_version_and_current_system(self):
        """Testing PackageChannel.get_all_rules_for_version with
        require_current_system=True
        """
        bundle = PackageBundle(manifest_url='packages/TestPackage/index.json')

        channel = PackageChannel(
            bundle=bundle,
            name='1.0.x',
            created_timestamp=datetime(2015, 10, 11, 8, 17, 29, 958569),
            last_updated_timestamp=datetime(2015, 10, 12, 8, 17, 29, 958569))
        channel._loaded = True

        rules1 = PackageRules(channel=channel,
                              version_range='*',
                              package_type='python',
                              package_name='TestPackage',
                              systems=['macosx'])
        rules2 = PackageRules(channel=channel,
                              version_range='>=1.0',
                              package_type='python',
                              package_name='TestPackage',
                              systems=['windows'])
        rules3 = PackageRules(channel=channel,
                              version_range='>=1.0,<=2.0',
                              package_type='python',
                              package_name='TestPackage',
                              systems=['MyDistro>1.2'])
        rules4 = PackageRules(channel=channel,
                              version_range='<=2.0',
                              package_type='python',
                              package_name='TestPackage',
                              systems=['MyDistro'])
        rules5 = PackageRules(channel=channel,
                              version_range='<=2.0',
                              package_type='python',
                              package_name='TestPackage',
                              systems=['*'])
        channel._package_rules = [rules1, rules2, rules3, rules4, rules5]

        self.spy_on(platform.system, call_fake=lambda: 'Linux')
        self.spy_on(platform.dist, call_fake=lambda: ('MyDistro', '1.3', ''))

        self.assertEqual(
            channel.get_all_rules_for_version('1.0',
                                              require_current_system=True),
            [rules3, rules4, rules5])