def test_with_hosting_service_new_account(self): """Testing RepositoryForm with a hosting service and new account""" form = RepositoryForm({ 'name': 'test', 'hosting_type': 'test', 'test-hosting_account_username': '******', 'test-hosting_account_password': '******', 'tool': self.git_tool_id, 'test_repo_name': 'testrepo', 'bug_tracker_type': 'none', }) self.assertTrue(form.is_valid()) self.assertTrue(form.hosting_account_linked) repository = form.save() self.assertEqual(repository.name, 'test') self.assertEqual(repository.hosting_account.username, 'testuser') self.assertEqual(repository.hosting_account.service_name, 'test') self.assertEqual(repository.hosting_account.local_site, None) self.assertEqual(repository.extra_data['repository_plan'], '') self.assertEqual(repository.path, 'http://example.com/testrepo/') self.assertEqual(repository.mirror_path, '') # Make sure none of the other auth forms are unhappy. That would be # an indicator that we're doing form processing and validation wrong. for auth_form in six.itervalues(form.hosting_auth_forms): self.assertEqual(auth_form.errors, {})
def test_with_hosting_service_with_hosting_bug_tracker(self): """Testing RepositoryForm with hosting service's bug tracker""" account = HostingServiceAccount.objects.create(username='******', service_name='test') account.data['password'] = '******' account.save() form = RepositoryForm({ 'name': 'test', 'hosting_type': 'test', 'hosting_account': account.pk, 'tool': self.git_tool_id, 'test_repo_name': 'testrepo', 'bug_tracker_use_hosting': True, 'bug_tracker_type': 'googlecode', }) form.validate_repository = False self.assertTrue(form.is_valid()) repository = form.save() self.assertTrue(repository.extra_data['bug_tracker_use_hosting']) self.assertEqual(repository.bug_tracker, 'http://example.com/testuser/testrepo/issue/%s') self.assertNotIn('bug_tracker_type', repository.extra_data) self.assertFalse('bug_tracker-test_repo_name' in repository.extra_data) self.assertFalse( 'bug_tracker-hosting_account_username' in repository.extra_data)
def test_with_hosting_service_self_hosted_and_existing_account(self): """Testing RepositoryForm with a self-hosted hosting service and existing account """ account = HostingServiceAccount.objects.create( username='******', service_name='self_hosted_test', hosting_url='https://example.com') account.data['password'] = '******' account.save() form = RepositoryForm({ 'name': 'test', 'hosting_type': 'self_hosted_test', 'self_hosted_test-hosting_url': 'https://example.com', 'hosting_account': account.pk, 'tool': self.git_tool_id, 'test_repo_name': 'myrepo', 'bug_tracker_type': 'none', }) form.validate_repository = False self.assertTrue(form.is_valid()) self.assertFalse(form.hosting_account_linked) repository = form.save() self.assertEqual(repository.name, 'test') self.assertEqual(repository.hosting_account, account) self.assertEqual(repository.extra_data['hosting_url'], 'https://example.com')
def test_with_hosting_service_self_hosted_bug_tracker_service(self): """Testing RepositoryForm with a self-hosted bug tracker service""" account = HostingServiceAccount.objects.create( username='******', service_name='self_hosted_test', hosting_url='https://example.com') account.data['password'] = '******' account.save() form = RepositoryForm({ 'name': 'test', 'hosting_type': 'self_hosted_test', 'hosting_url': 'https://example.com', 'hosting_account': account.pk, 'tool': self.git_tool_id, 'test_repo_name': 'testrepo', 'bug_tracker_type': 'self_hosted_test', 'bug_tracker_hosting_url': 'https://example.com', 'bug_tracker-test_repo_name': 'testrepo', }) form.validate_repository = False self.assertTrue(form.is_valid()) repository = form.save() self.assertFalse(repository.extra_data['bug_tracker_use_hosting']) self.assertEqual(repository.bug_tracker, 'https://example.com/testrepo/issue/%s') self.assertEqual(repository.extra_data['bug_tracker_type'], 'self_hosted_test') self.assertEqual(repository.extra_data['bug_tracker-test_repo_name'], 'testrepo') self.assertEqual(repository.extra_data['bug_tracker_hosting_url'], 'https://example.com')
def test_with_hosting_service_existing_account(self): """Testing RepositoryForm with a hosting service and existing account """ account = HostingServiceAccount.objects.create(username='******', service_name='test') account.data['password'] = '******' account.save() form = RepositoryForm({ 'name': 'test', 'hosting_type': 'test', 'hosting_account': account.pk, 'tool': self.git_tool_id, 'test_repo_name': 'testrepo', 'bug_tracker_type': 'none', }) self.assertTrue(form.is_valid()) self.assertFalse(form.hosting_account_linked) repository = form.save() self.assertEqual(repository.name, 'test') self.assertEqual(repository.hosting_account, account) self.assertEqual(repository.extra_data['repository_plan'], '')
def test_with_hosting_service_new_account_localsite(self): """Testing RepositoryForm with a hosting service, new account and LocalSite """ local_site = LocalSite.objects.create(name='testsite') form = RepositoryForm( { 'name': 'test', 'hosting_type': 'test', 'test-hosting_account_username': '******', 'test-hosting_account_password': '******', 'tool': self.git_tool_id, 'test_repo_name': 'testrepo', 'bug_tracker_type': 'none', 'local_site': local_site.pk, }, local_site_name=local_site.name) self.assertTrue(form.is_valid()) self.assertTrue(form.hosting_account_linked) repository = form.save() self.assertEqual(repository.name, 'test') self.assertEqual(repository.local_site, local_site) self.assertEqual(repository.hosting_account.username, 'testuser') self.assertEqual(repository.hosting_account.service_name, 'test') self.assertEqual(repository.hosting_account.local_site, local_site) self.assertEqual(repository.extra_data['repository_plan'], '')
def test_with_hosting_service_with_hosting_bug_tracker(self): """Testing RepositoryForm with hosting service's bug tracker""" account = HostingServiceAccount.objects.create(username='******', service_name='test') account.data['password'] = '******' account.save() form = RepositoryForm({ 'name': 'test', 'hosting_type': 'test', 'hosting_account': account.pk, 'tool': self.git_tool_id, 'test_repo_name': 'testrepo', 'bug_tracker_use_hosting': True, 'bug_tracker_type': 'googlecode', }) form.validate_repository = False self.assertTrue(form.is_valid()) repository = form.save() self.assertTrue(repository.extra_data['bug_tracker_use_hosting']) self.assertEqual(repository.bug_tracker, 'http://example.com/testuser/testrepo/issue/%s') self.assertNotIn('bug_tracker_type', repository.extra_data) self.assertFalse('bug_tracker-test_repo_name' in repository.extra_data) self.assertFalse('bug_tracker-hosting_account_username' in repository.extra_data)
def test_plain_repository(self): """Testing RepositoryForm with a plain repository""" form = RepositoryForm({ 'name': 'test', 'hosting_type': 'custom', 'tool': self.git_tool_id, 'path': '/path/to/test.git', 'bug_tracker_type': 'none', }) self.assertTrue(form.is_valid()) repository = form.save() self.assertEqual(repository.name, 'test') self.assertEqual(repository.hosting_account, None) self.assertEqual(repository.extra_data, {}) # Make sure none of the other auth forms are unhappy. That would be # an indicator that we're doing form processing and validation wrong. for auth_form in six.itervalues(form.hosting_auth_forms): self.assertEqual(auth_form.errors, {})
def test_with_hosting_service_no_bug_tracker(self): """Testing RepositoryForm with no bug tracker""" account = HostingServiceAccount.objects.create(username='******', service_name='test') account.data['password'] = '******' account.save() form = RepositoryForm({ 'name': 'test', 'hosting_type': 'test', 'hosting_account': account.pk, 'tool': self.git_tool_id, 'test_repo_name': 'testrepo', 'bug_tracker_type': 'none', }) self.assertTrue(form.is_valid()) repository = form.save() self.assertFalse(repository.extra_data['bug_tracker_use_hosting']) self.assertEqual(repository.bug_tracker, '') self.assertNotIn('bug_tracker_type', repository.extra_data)
def test_with_hosting_service_self_hosted_bug_tracker_service(self): """Testing RepositoryForm with a self-hosted bug tracker service""" account = HostingServiceAccount.objects.create( username='******', service_name='self_hosted_test', hosting_url='https://example.com') account.data['password'] = '******' account.save() form = RepositoryForm({ 'name': 'test', 'hosting_type': 'self_hosted_test', 'hosting_url': 'https://example.com', 'hosting_account': account.pk, 'tool': self.git_tool_id, 'test_repo_name': 'testrepo', 'bug_tracker_type': 'self_hosted_test', 'bug_tracker_hosting_url': 'https://example.com', 'bug_tracker-test_repo_name': 'testrepo', }) form.validate_repository = False self.assertTrue(form.is_valid()) repository = form.save() self.assertFalse(repository.extra_data['bug_tracker_use_hosting']) self.assertEqual(repository.bug_tracker, 'https://example.com/testrepo/issue/%s') self.assertEqual(repository.extra_data['bug_tracker_type'], 'self_hosted_test') self.assertEqual( repository.extra_data['bug_tracker-test_repo_name'], 'testrepo') self.assertEqual( repository.extra_data['bug_tracker_hosting_url'], 'https://example.com')