Mercurial > kallithea
comparison rhodecode/tests/api/api_base.py @ 2653:8be70a4d72c7 beta
Implemented #354 added forking option to API
author | Marcin Kuzminski <marcin@python-works.com> |
---|---|
date | Sun, 22 Jul 2012 01:16:36 +0200 |
parents | 40b3a54391f9 |
children | 001c7e2ae986 |
comparison
equal
deleted
inserted
replaced
2652:532ee86cf9b1 | 2653:8be70a4d72c7 |
---|---|
62 repo_type=repo_type, | 62 repo_type=repo_type, |
63 clone_uri=None, | 63 clone_uri=None, |
64 landing_rev='tip') | 64 landing_rev='tip') |
65 cur_user = UserModel().get_by_username(TEST_USER_ADMIN_LOGIN) | 65 cur_user = UserModel().get_by_username(TEST_USER_ADMIN_LOGIN) |
66 r = RepoModel().create(form_data, cur_user) | 66 r = RepoModel().create(form_data, cur_user) |
67 Session().commit() | |
68 return r | |
69 | |
70 | |
71 def create_fork(fork_name, fork_type, fork_of): | |
72 fork = RepoModel(Session())._get_repo(fork_of) | |
73 r = create_repo(fork_name, fork_type) | |
74 r.fork = fork | |
75 Session().add(r) | |
67 Session().commit() | 76 Session().commit() |
68 return r | 77 return r |
69 | 78 |
70 | 79 |
71 def destroy_repo(repo_name): | 80 def destroy_repo(repo_name): |
569 self._compare_ok(id_, expected, given=response.body) | 578 self._compare_ok(id_, expected, given=response.body) |
570 | 579 |
571 def test_api_delete_repo_exception_occurred(self): | 580 def test_api_delete_repo_exception_occurred(self): |
572 repo_name = 'api_delete_me' | 581 repo_name = 'api_delete_me' |
573 create_repo(repo_name, self.REPO_TYPE) | 582 create_repo(repo_name, self.REPO_TYPE) |
574 with mock.patch.object(RepoModel, 'delete', crash): | 583 try: |
575 id_, params = _build_data(self.apikey, 'delete_repo', | 584 with mock.patch.object(RepoModel, 'delete', crash): |
576 repoid=repo_name,) | 585 id_, params = _build_data(self.apikey, 'delete_repo', |
586 repoid=repo_name,) | |
587 response = self.app.post(API_URL, content_type='application/json', | |
588 params=params) | |
589 | |
590 expected = 'failed to delete repository `%s`' % repo_name | |
591 self._compare_error(id_, expected, given=response.body) | |
592 finally: | |
593 destroy_repo(repo_name) | |
594 | |
595 def test_api_fork_repo(self): | |
596 fork_name = 'api-repo-fork' | |
597 id_, params = _build_data(self.apikey, 'fork_repo', | |
598 repoid=self.REPO, | |
599 fork_name=fork_name, | |
600 owner=TEST_USER_ADMIN_LOGIN, | |
601 ) | |
602 response = self.app.post(API_URL, content_type='application/json', | |
603 params=params) | |
604 | |
605 ret = { | |
606 'msg': 'Created fork of `%s` as `%s`' % (self.REPO, | |
607 fork_name), | |
608 'success': True | |
609 } | |
610 expected = ret | |
611 self._compare_ok(id_, expected, given=response.body) | |
612 destroy_repo(fork_name) | |
613 | |
614 def test_api_fork_repo_unknown_owner(self): | |
615 fork_name = 'api-repo-fork' | |
616 owner = 'i-dont-exist' | |
617 id_, params = _build_data(self.apikey, 'fork_repo', | |
618 repoid=self.REPO, | |
619 fork_name=fork_name, | |
620 owner=owner, | |
621 ) | |
622 response = self.app.post(API_URL, content_type='application/json', | |
623 params=params) | |
624 expected = 'user `%s` does not exist' % owner | |
625 self._compare_error(id_, expected, given=response.body) | |
626 | |
627 def test_api_fork_repo_fork_exists(self): | |
628 fork_name = 'api-repo-fork' | |
629 create_fork(fork_name, self.REPO_TYPE, self.REPO) | |
630 | |
631 try: | |
632 fork_name = 'api-repo-fork' | |
633 | |
634 id_, params = _build_data(self.apikey, 'fork_repo', | |
635 repoid=self.REPO, | |
636 fork_name=fork_name, | |
637 owner=TEST_USER_ADMIN_LOGIN, | |
638 ) | |
577 response = self.app.post(API_URL, content_type='application/json', | 639 response = self.app.post(API_URL, content_type='application/json', |
578 params=params) | 640 params=params) |
579 | 641 |
580 expected = 'failed to delete repository `%s`' % repo_name | 642 expected = "fork `%s` already exist" % fork_name |
581 self._compare_error(id_, expected, given=response.body) | 643 self._compare_error(id_, expected, given=response.body) |
582 destroy_repo(repo_name) | 644 finally: |
583 | 645 destroy_repo(fork_name) |
584 def test_api_fork_repo(self): | 646 |
585 self.failIf(False, 'TODO:') | 647 def test_api_fork_repo_repo_exists(self): |
648 fork_name = self.REPO | |
649 | |
650 id_, params = _build_data(self.apikey, 'fork_repo', | |
651 repoid=self.REPO, | |
652 fork_name=fork_name, | |
653 owner=TEST_USER_ADMIN_LOGIN, | |
654 ) | |
655 response = self.app.post(API_URL, content_type='application/json', | |
656 params=params) | |
657 | |
658 expected = "repo `%s` already exist" % fork_name | |
659 self._compare_error(id_, expected, given=response.body) | |
660 | |
661 @mock.patch.object(RepoModel, 'create_fork', crash) | |
662 def test_api_fork_repo_exception_occurred(self): | |
663 fork_name = 'api-repo-fork' | |
664 id_, params = _build_data(self.apikey, 'fork_repo', | |
665 repoid=self.REPO, | |
666 fork_name=fork_name, | |
667 owner=TEST_USER_ADMIN_LOGIN, | |
668 ) | |
669 response = self.app.post(API_URL, content_type='application/json', | |
670 params=params) | |
671 | |
672 expected = 'failed to fork repository `%s` as `%s`' % (self.REPO, | |
673 fork_name) | |
674 self._compare_error(id_, expected, given=response.body) | |
586 | 675 |
587 def test_api_get_users_group(self): | 676 def test_api_get_users_group(self): |
588 id_, params = _build_data(self.apikey, 'get_users_group', | 677 id_, params = _build_data(self.apikey, 'get_users_group', |
589 usersgroupid=TEST_USERS_GROUP) | 678 usersgroupid=TEST_USERS_GROUP) |
590 response = self.app.post(API_URL, content_type='application/json', | 679 response = self.app.post(API_URL, content_type='application/json', |