Пример #1
0
    def test_parse_atom(self):
        repo = util.SimpleTree({'spork': {'foon': ('1', '1.0.1', '2')}})
        livefs_repos = util.SimpleTree({'foo': {'bar': ('1')}})
        for cat in ('', 'spork/'):
            a = pmerge.parse_atom(parse_match('=%sfoon-1' % (cat,)), repo, livefs_repos)
            self.assertEqual(a.key, 'spork/foon')
            self.assertEqual([x.fullver for x in repo.itermatch(a)],
                ['1'])
            a = pmerge.parse_atom(parse_match('%sfoon' % (cat,)), repo, livefs_repos)
            self.assertEqual(a.key, 'spork/foon')
            self.assertEqual(sorted(x.fullver for x in repo.itermatch(a)),
                sorted(['1', '1.0.1', '2']))

        repo = util.SimpleTree({'spork': {'foon': ('1',)},
            'spork2': {'foon': ('2',)}})
        self.assertRaises(pmerge.NoMatches,
            pmerge.parse_atom, parse_match("foo"), repo, livefs_repos)
        self.assertRaises(pmerge.AmbiguousQuery,
            pmerge.parse_atom, parse_match("foon"), repo, livefs_repos)
        # test unicode conversion.
        a = pmerge.parse_atom(parse_match(u'=spork/foon-1'), repo, livefs_repos)
        self.assertEqual(a.key, 'spork/foon')
        self.assertTrue(isinstance(a.key, str))

        # test pkg name collisions between real and virtual pkgs on livefs
        # repos, the real pkg will be selected over the virtual
        livefs_repos = util.SimpleTree({'foo': {'bar': ('1')}, 'virtual': {'bar': ('0')}})
        repo = util.SimpleTree({'foo': {'bar': ('1',)}, 'virtual': {'bar': ('1',)}})
        a = pmerge.parse_atom(parse_match("bar"), repo, livefs_repos)
        self.assertEqual(a.key, 'foo/bar')
        self.assertTrue(isinstance(a.key, str))
Пример #2
0
    def test_parse_atom(self):
        repo = util.SimpleTree({'spork': {'foon': ('1', '1.0.1', '2')}})
        for cat in ('', 'spork/'):
            a = pmerge.parse_atom(parse_match('=%sfoon-1' % (cat,)), repo)
            self.assertEqual(a.key, 'spork/foon')
            self.assertEqual([x.fullver for x in repo.itermatch(a)],
                ['1'])
            a = pmerge.parse_atom(parse_match('%sfoon' % (cat,)), repo)
            self.assertEqual(a.key, 'spork/foon')
            self.assertEqual(sorted(x.fullver for x in repo.itermatch(a)),
                sorted(['1', '1.0.1', '2']))

        repo = util.SimpleTree({'spork': {'foon': ('1',)},
            'spork2': {'foon': ('2',)}})
        self.assertRaises(pmerge.NoMatches,
            pmerge.parse_atom, parse_match("foo"), repo)
        self.assertRaises(pmerge.AmbiguousQuery,
            pmerge.parse_atom, parse_match("foon"), repo)
        # test unicode conversion.
        a = pmerge.parse_atom(parse_match(u'=spork/foon-1'), repo)
        self.assertEqual(a.key, 'spork/foon')
        self.assertTrue(isinstance(a.key, str))