Changeset 273333 in webkit
- Timestamp:
- Feb 23, 2021, 2:22:25 PM (6 years ago)
- Location:
- trunk/Tools
- Files:
-
- 2 added
- 6 edited
-
ChangeLog (modified) (1 diff)
-
Scripts/libraries/webkitscmpy/webkitscmpy/mocks/remote/__init__.py (modified) (1 diff)
-
Scripts/libraries/webkitscmpy/webkitscmpy/mocks/remote/bitbucket.py (added)
-
Scripts/libraries/webkitscmpy/webkitscmpy/remote/__init__.py (modified) (1 diff)
-
Scripts/libraries/webkitscmpy/webkitscmpy/remote/bitbucket.py (added)
-
Scripts/libraries/webkitscmpy/webkitscmpy/remote/scm.py (modified) (1 diff)
-
Scripts/libraries/webkitscmpy/webkitscmpy/test/git_unittest.py (modified) (2 diffs)
-
Scripts/libraries/webkitscmpy/webkitscmpy/test/svn_unittest.py (modified) (1 diff)
Legend:
- Unmodified
- Added
- Removed
-
trunk/Tools/ChangeLog
r273331 r273333 1 2021-02-23 Jonathan Bedard <jbedard@apple.com> 2 3 [webkitscmpy] Add remote BitBucket 4 https://bugs.webkit.org/show_bug.cgi?id=222213 5 <rdar://problem/74542626> 6 7 Rubber-stamped by Aakash Jain. 8 9 * Scripts/libraries/webkitscmpy/setup.py: Increment version. 10 * Scripts/libraries/webkitscmpy/webkitscmpy/__init__.py: Ditto. 11 * Scripts/libraries/webkitscmpy/webkitscmpy/mocks/remote/__init__.py: Export mock BitBucket. 12 * Scripts/libraries/webkitscmpy/webkitscmpy/mocks/remote/bitbucket.py: Added. 13 (BitBucket): Mock limited set of BitBucket REST APIs. 14 * Scripts/libraries/webkitscmpy/webkitscmpy/remote/__init__.py: Export BitBucket class. 15 * Scripts/libraries/webkitscmpy/webkitscmpy/remote/bitbucket.py: Added. 16 (BitBucket): Repository object interacting with BitBucket via REST API. 17 (BitBucket.is_webserver): Check if the provided URL is a bitbucket URL. 18 (BitBucket.__init__): 19 (BitBucket.is_git): 20 (BitBucket.request): Combine paginated requests into a single API call. 21 (BitBucket._distance): Preform binary search 22 (BitBucket._branches_for): Return branches for reference. 23 (BitBucket.default_branch): Return the default branch. 24 (BitBucket.branches): Return all branches for repository. 25 (BitBucket.tags): Return all tags for repository. 26 (BitBucket.commit): Convert hash, identifier or git ref to Commit object. 27 (BitBucket.find): Use git to match branches and tags to a hash instead of trying to do it ourselves. 28 * Scripts/libraries/webkitscmpy/webkitscmpy/remote/scm.py: 29 (Scm.from_url): Add BitBucket. 30 * Scripts/libraries/webkitscmpy/webkitscmpy/test/git_unittest.py: 31 (TestGitHub.test_detection): Add bitbucket url. 32 (TestBitBucket): Added. 33 * Scripts/libraries/webkitscmpy/webkitscmpy/test/svn_unittest.py: 34 (TestRemoteSvn.test_detection): Add bitbucket url. 35 1 36 2021-02-23 Don Olmstead <don.olmstead@sony.com> 2 37 -
trunk/Tools/Scripts/libraries/webkitscmpy/webkitscmpy/mocks/remote/__init__.py
r270871 r273333 21 21 # OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. 22 22 23 from webkitscmpy.mocks.remote.bitbucket import BitBucket 23 24 from webkitscmpy.mocks.remote.git_hub import GitHub 24 25 from webkitscmpy.mocks.remote.svn import Svn -
trunk/Tools/Scripts/libraries/webkitscmpy/webkitscmpy/remote/__init__.py
r270871 r273333 24 24 from webkitscmpy.remote.svn import Svn 25 25 from webkitscmpy.remote.git_hub import GitHub 26 from webkitscmpy.remote.bitbucket import BitBucket -
trunk/Tools/Scripts/libraries/webkitscmpy/webkitscmpy/remote/scm.py
r270871 r273333 31 31 from webkitscmpy import remote 32 32 33 if remote.Svn.is_webserver(url):34 return remote.Svn(url, contributors=contributors)35 if remote.GitHub.is_webserver(url):36 return remote.GitHub(url, contributors=contributors) 33 for candidate in [remote.Svn, remote.GitHub, remote.BitBucket]: 34 if candidate.is_webserver(url): 35 return candidate(url, contributors=contributors) 36 37 37 raise OSError("'{}' is not a known SCM server".format(url)) 38 38 -
trunk/Tools/Scripts/libraries/webkitscmpy/webkitscmpy/test/git_unittest.py
r271748 r273333 280 280 self.assertEqual(remote.GitHub.is_webserver('http://github.example.com/WebKit/webkit'), True) 281 281 self.assertEqual(remote.GitHub.is_webserver('https://svn.example.org/repository/webkit'), False) 282 self.assertEqual(remote.GitHub.is_webserver('https://bitbucket.example.com/projects/WebKit/repos/webkit'), False) 282 283 283 284 def test_branches(self): … … 379 380 self.assertEqual(str(remote.GitHub(self.remote).find('4@trunk')), '4@main') 380 381 self.assertEqual(str(remote.GitHub(self.remote).find('4@master')), '4@main') 382 383 384 class TestBitBucket(unittest.TestCase): 385 remote = 'https://bitbucket.example.com/projects/WEBKIT/repos/webkit' 386 387 def test_detection(self): 388 self.assertEqual(remote.BitBucket.is_webserver('https://bitbucket.example.com/projects/WebKit/repos/webkit'), True) 389 self.assertEqual(remote.BitBucket.is_webserver('http://bitbucket.example.com/projects/WebKit/repos/webkit'), True) 390 self.assertEqual(remote.BitBucket.is_webserver('https://svn.example.org/repository/webkit'), False) 391 self.assertEqual(remote.BitBucket.is_webserver('https://github.example.com/WebKit/webkit'), False) 392 393 def test_branches(self): 394 with mocks.remote.BitBucket(): 395 self.assertEqual( 396 remote.BitBucket(self.remote).branches, 397 ['branch-a', 'branch-b', 'main'], 398 ) 399 400 def test_tags(self): 401 with mocks.remote.BitBucket() as mock: 402 mock.tags['tag-1'] = mock.commits['branch-a'][-1] 403 mock.tags['tag-2'] = mock.commits['branch-b'][-1] 404 405 self.assertEqual( 406 remote.BitBucket(self.remote).tags, 407 ['tag-1', 'tag-2'], 408 ) 409 410 def test_scm_type(self): 411 self.assertFalse(remote.BitBucket(self.remote).is_svn) 412 self.assertTrue(remote.BitBucket(self.remote).is_git) 413 414 def test_commit_revision(self): 415 with mocks.remote.BitBucket(): 416 self.assertEqual('1@main', str(remote.BitBucket(self.remote).commit(hash='9b8311f2'))) 417 self.assertEqual('2@main', str(remote.BitBucket(self.remote).commit(hash='fff83bb2'))) 418 self.assertEqual('2.1@branch-a', str(remote.BitBucket(self.remote).commit(hash='a30ce849'))) 419 self.assertEqual('3@main', str(remote.BitBucket(self.remote).commit(hash='1abe25b4'))) 420 self.assertEqual('2.2@branch-b', str(remote.BitBucket(self.remote).commit(hash='3cd32e35'))) 421 self.assertEqual('4@main', str(remote.BitBucket(self.remote).commit(hash='bae5d1e9'))) 422 self.assertEqual('2.2@branch-a', str(remote.BitBucket(self.remote).commit(hash='621652ad'))) 423 self.assertEqual('2.3@branch-b', str(remote.BitBucket(self.remote).commit(hash='790725a6'))) 424 425 def test_commit_from_branch(self): 426 with mocks.remote.BitBucket(): 427 self.assertEqual('4@main', str(remote.BitBucket(self.remote).commit(branch='main'))) 428 self.assertEqual('2.2@branch-a', str(remote.BitBucket(self.remote).commit(branch='branch-a'))) 429 self.assertEqual('2.3@branch-b', str(remote.BitBucket(self.remote).commit(branch='branch-b'))) 430 431 def test_identifier(self): 432 with mocks.remote.BitBucket(): 433 self.assertEqual( 434 '9b8311f25a77ba14923d9d5a6532103f54abefcb', 435 remote.BitBucket(self.remote).commit(identifier='1@main').hash, 436 ) 437 self.assertEqual( 438 'fff83bb2d9171b4d9196e977eb0508fd57e7a08d', 439 remote.BitBucket(self.remote).commit(identifier='2@main').hash, 440 ) 441 self.assertEqual( 442 'a30ce8494bf1ac2807a69844f726be4a9843ca55', 443 remote.BitBucket(self.remote).commit(identifier='2.1@branch-a').hash, 444 ) 445 self.assertEqual( 446 '1abe25b443e985f93b90d830e4a7e3731336af4d', 447 remote.BitBucket(self.remote).commit(identifier='3@main').hash, 448 ) 449 self.assertEqual( 450 '3cd32e352410565bb543821fbf856a6d3caad1c4', 451 remote.BitBucket(self.remote).commit(identifier='2.2@branch-b').hash, 452 ) 453 self.assertEqual( 454 'bae5d1e90999d4f916a8a15810ccfa43f37a2fd6', 455 remote.BitBucket(self.remote).commit(identifier='4@main').hash, 456 ) 457 self.assertEqual( 458 '621652add7fc416099bd2063366cc38ff61afe36', 459 remote.BitBucket(self.remote).commit(identifier='2.2@branch-a').hash, 460 ) 461 self.assertEqual( 462 '790725a6d79e28db2ecdde29548d2262c0bd059d', 463 remote.BitBucket(self.remote).commit(identifier='2.3@branch-b').hash, 464 ) 465 466 def test_non_cannonical_identifiers(self): 467 with mocks.remote.BitBucket(): 468 self.assertEqual('2@main', str(remote.BitBucket(self.remote).commit(identifier='0@branch-a'))) 469 self.assertEqual('1@main', str(remote.BitBucket(self.remote).commit(identifier='-1@branch-a'))) 470 471 self.assertEqual('2@main', str(remote.BitBucket(self.remote).commit(identifier='0@branch-b'))) 472 self.assertEqual('1@main', str(remote.BitBucket(self.remote).commit(identifier='-1@branch-b'))) 473 474 def test_tag(self): 475 with mocks.remote.BitBucket() as mock: 476 mock.tags['tag-1'] = mock.commits['branch-a'][-1] 477 478 self.assertEqual( 479 '621652add7fc416099bd2063366cc38ff61afe36', 480 remote.BitBucket(self.remote).commit(tag='tag-1').hash, 481 ) 482 483 def test_no_log(self): 484 with mocks.remote.BitBucket(): 485 self.assertIsNone(remote.BitBucket(self.remote).commit(identifier='4@main', include_log=False).message) 486 487 def test_alternative_default_branch(self): 488 with mocks.remote.BitBucket(): 489 self.assertEqual(str(remote.BitBucket(self.remote).find('4@trunk')), '4@main') 490 self.assertEqual(str(remote.BitBucket(self.remote).find('4@master')), '4@main') -
trunk/Tools/Scripts/libraries/webkitscmpy/webkitscmpy/test/svn_unittest.py
r271748 r273333 236 236 self.assertEqual(remote.Svn.is_webserver('http://svn.example.org/repository/webkit'), True) 237 237 self.assertEqual(remote.Svn.is_webserver('https://github.example.org/WebKit/webkit'), False) 238 self.assertEqual(remote.GitHub.is_webserver('https://bitbucket.example.com/projects/WebKit/repos/webkit'), False) 238 239 239 240 def test_branches(self):
Note:
See TracChangeset
for help on using the changeset viewer.