예제 #1
0
 def _assert_chooses(self, requirement, options, chosen):
     requirement = Requirement.parse(requirement)
     git.get_remote_references_dict(self.url).and_return(options)
     self.forge.replay()
     new_source = self.source.resolve_constraints(requirement.specs)
     self.assertIsInstance(new_source, sources.Git)
     self.assertEquals(new_source._url, self.url)
     self.assertEquals(new_source._branch, chosen)
예제 #2
0
    def test__remote_references(self):
        command.execute_assert_success("git ls-remote {0}".format(self.url), shell=True).and_return((0, """\
ccd9dc4f0775c442ede15db26c26c02a766cf1a	HEAD
4ccd9dc4f0775c442ede15db26c26c02a766cf1a	refs/heads/master
bee1140b66c0ca1cb788e52697b7fb66ecb650bd        some_symlink -> blap
bee1140b66c0ca1cb788e52697b7fb66ecb650bd	refs/tags/v0.0.1
"""))
        self.forge.replay()
        result = git.get_remote_references_dict(self.url)
        self.assertIsInstance(result, dict)
        refs = sorted(result)
        self.assertEquals(len(refs), 2)
        self.assertIsInstance(refs[0], git.Branch)
        self.assertEquals(refs[0], 'master')
        self.assertEquals(result['master'], "4ccd9dc4f0775c442ede15db26c26c02a766cf1a")
        self.assertEquals(refs[0].to_ref_name(), 'master')
        self.assertIsInstance(refs[1], git.Tag)
        self.assertEquals(refs[1], 'v0.0.1')
        self.assertEquals(refs[1].to_ref_name(), 'tags/v0.0.1')
        self.assertEquals(result['v0.0.1'], "bee1140b66c0ca1cb788e52697b7fb66ecb650bd")
예제 #3
0
 def _assert_no_match(self, requirement, options):
     specs = Requirement.parse(requirement).specs
     git.get_remote_references_dict(self.url).and_return(options)
     self.forge.replay()
     with self.assertRaises(exceptions.RequiredVersionNotFound):
         self.source.resolve_constraints(specs)