def test_non_cannonical_identifiers(self): with mocks.remote.GitHub(): self.assertEqual('2@main', str(remote.GitHub(self.remote).commit(identifier='0@branch-a'))) self.assertEqual('1@main', str(remote.GitHub(self.remote).commit(identifier='-1@branch-a'))) self.assertEqual('2@main', str(remote.GitHub(self.remote).commit(identifier='0@branch-b'))) self.assertEqual('1@main', str(remote.GitHub(self.remote).commit(identifier='-1@branch-b')))
def test_order(self): with mocks.remote.GitHub(): self.assertEqual( 0, remote.GitHub(self.remote).commit(hash='bae5d1e90999').order) self.assertEqual( 1, remote.GitHub(self.remote).commit(hash='d8bce26fa65c').order)
def test_commit_from_branch(self): with mocks.remote.GitHub(): self.assertEqual( '5@main', str(remote.GitHub(self.remote).commit(branch='main'))) self.assertEqual( '2.2@branch-a', str(remote.GitHub(self.remote).commit(branch='branch-a'))) self.assertEqual( '2.3@branch-b', str(remote.GitHub(self.remote).commit(branch='branch-b')))
def test_identifier(self): with mocks.remote.GitHub(): self.assertEqual( '9b8311f25a77ba14923d9d5a6532103f54abefcb', remote.GitHub(self.remote).commit(identifier='1@main').hash, ) self.assertEqual( 'fff83bb2d9171b4d9196e977eb0508fd57e7a08d', remote.GitHub(self.remote).commit(identifier='2@main').hash, ) self.assertEqual( 'a30ce8494bf1ac2807a69844f726be4a9843ca55', remote.GitHub(self.remote).commit(identifier='2.1@branch-a').hash, ) self.assertEqual( '1abe25b443e985f93b90d830e4a7e3731336af4d', remote.GitHub(self.remote).commit(identifier='3@main').hash, ) self.assertEqual( '3cd32e352410565bb543821fbf856a6d3caad1c4', remote.GitHub(self.remote).commit(identifier='2.2@branch-b').hash, ) self.assertEqual( 'bae5d1e90999d4f916a8a15810ccfa43f37a2fd6', remote.GitHub(self.remote).commit(identifier='4@main').hash, ) self.assertEqual( '621652add7fc416099bd2063366cc38ff61afe36', remote.GitHub(self.remote).commit(identifier='2.2@branch-a').hash, ) self.assertEqual( '790725a6d79e28db2ecdde29548d2262c0bd059d', remote.GitHub(self.remote).commit(identifier='2.3@branch-b').hash, )
def test_commit_revision(self): with mocks.remote.GitHub(git_svn=True): self.assertEqual( 1, remote.GitHub(self.remote).commit(hash='9b8311f2').revision) self.assertEqual( 2, remote.GitHub(self.remote).commit(hash='fff83bb2').revision) self.assertEqual( 3, remote.GitHub(self.remote).commit(hash='a30ce849').revision) self.assertEqual( 4, remote.GitHub(self.remote).commit(hash='1abe25b4').revision) self.assertEqual( 5, remote.GitHub(self.remote).commit(hash='3cd32e35').revision) self.assertEqual( 6, remote.GitHub(self.remote).commit(hash='621652ad').revision) self.assertEqual( 7, remote.GitHub(self.remote).commit(hash='790725a6').revision) self.assertEqual( 8, remote.GitHub(self.remote).commit(hash='bae5d1e9').revision)
def test_commit_hash(self): with mocks.remote.GitHub(): self.assertEqual( '1@main', str(remote.GitHub(self.remote).commit(hash='9b8311f2'))) self.assertEqual( '2@main', str(remote.GitHub(self.remote).commit(hash='fff83bb2'))) self.assertEqual( '2.1@branch-a', str(remote.GitHub(self.remote).commit(hash='a30ce849'))) self.assertEqual( '3@main', str(remote.GitHub(self.remote).commit(hash='1abe25b4'))) self.assertEqual( '2.2@branch-b', str(remote.GitHub(self.remote).commit(hash='3cd32e35'))) self.assertEqual( '4@main', str(remote.GitHub(self.remote).commit(hash='bae5d1e9'))) self.assertEqual( '2.2@branch-a', str(remote.GitHub(self.remote).commit(hash='621652ad'))) self.assertEqual( '2.3@branch-b', str(remote.GitHub(self.remote).commit(hash='790725a6')))
def __init__(self): self.svn = remote.Svn('https://svn.webkit.org/repository/webkit') self.github = remote.GitHub('https://github.com/WebKit/WebKit') super(WebKitRepository, self).__init__( key='webkit', default_branch=self.github.default_branch, )
def from_url(cls, url, contributors=None): from webkitscmpy import remote if remote.Svn.is_webserver(url): return remote.Svn(url, contributors=contributors) if remote.GitHub.is_webserver(url): return remote.GitHub(url, contributors=contributors) raise OSError("'{}' is not a known SCM server".format(url))
def test_tag(self): with mocks.remote.GitHub() as mock: mock.tags['tag-1'] = mock.commits['branch-a'][-1] self.assertEqual( '621652add7fc416099bd2063366cc38ff61afe36', remote.GitHub(self.remote).commit(tag='tag-1').hash, )
def test_tags(self): with mocks.remote.GitHub() as mock: mock.tags['tag-1'] = mock.commits['branch-a'][-1] mock.tags['tag-2'] = mock.commits['branch-b'][-1] self.assertEqual( remote.GitHub(self.remote).tags, ['tag-1', 'tag-2'], )
def test_commits_branch(self): with mocks.remote.GitHub(): git = remote.GitHub(self.remote) self.assertEqual( Commit.Encoder().default([ git.commit(hash='621652ad'), git.commit(hash='a30ce849'), git.commit(hash='fff83bb2'), git.commit(hash='9b8311f2'), ]), Commit.Encoder().default( list( git.commits(begin=dict(argument='9b8311f2'), end=dict(argument='621652ad')))))
def test_commits(self): with mocks.remote.GitHub(): git = remote.GitHub(self.remote) self.assertEqual( Commit.Encoder().default([ git.commit(hash='bae5d1e9'), git.commit(hash='1abe25b4'), git.commit(hash='fff83bb2'), git.commit(hash='9b8311f2'), ]), Commit.Encoder().default( list( git.commits(begin=dict(hash='9b8311f2'), end=dict(hash='bae5d1e9')))))
def test_id(self): self.assertEqual(remote.GitHub(self.remote).id, 'webkit')
def test_no_identifier(self): with mocks.remote.GitHub(): self.assertIsNone( remote.GitHub(self.remote).find( 'main', include_identifier=False).identifier)
def test_alternative_default_branch(self): with mocks.remote.GitHub(): self.assertEqual(str(remote.GitHub(self.remote).find('4@trunk')), '4@main') self.assertEqual(str(remote.GitHub(self.remote).find('4@master')), '4@main')
def test_no_log(self): with mocks.remote.GitHub(): self.assertIsNone( remote.GitHub(self.remote).commit(identifier='4@main', include_log=False).message)
def test_scm_type(self): self.assertFalse(remote.GitHub(self.remote).is_svn) self.assertTrue(remote.GitHub(self.remote).is_git)
def test_branches(self): with mocks.remote.GitHub(): self.assertEqual( remote.GitHub(self.remote).branches, ['branch-a', 'branch-b', 'main'], )