class CompanyAuthdViewTests(TestCase): def setUp(self): password = '******' owner = User(username='******') owner.set_password(password) owner.full_clean() owner.save() other = User(username='******') other.set_password(password) other.full_clean() other.save() self.company1 = Company(name='Tramcar', url='http://www.tramcar.org', site_id=1, user_id=owner.id) self.company1.full_clean() self.company1.save() self.company2 = Company(name='WFH.io', url='https://www.wfh.io', site_id=1, user_id=other.id) self.company2.full_clean() self.company2.save() self.client.post( '/login/', {'username': owner.username, 'password': password} ) def test_index_view(self): response = self.client.get(reverse('companies_index')) self.assertEqual(response.status_code, 200) def test_new_view(self): response = self.client.get(reverse('companies_new')) self.assertEqual(response.status_code, 200) def test_show_view(self): response = self.client.get(self.company1.get_absolute_url()) self.assertEqual(response.status_code, 200) def test_show_view_on_own_company_shows_edit_link(self): response = self.client.get(self.company1.get_absolute_url()) url = reverse('companies_edit', args=(self.company1.id,)) edit = '<a class="btn btn-default btn-sm" ' \ 'href="%s">Edit Company</a>' % url self.assertContains(response, edit) def test_show_view_on_other_company_does_not_show_edit_link(self): response = self.client.get(self.company2.get_absolute_url()) url = reverse('companies_edit', args=(self.company2.id,)) edit = '<a class="btn btn-primary btn-sm" ' \ 'href="%s">Edit Company</a>' % url self.assertNotContains(response, edit) def test_edit_view(self): response = self.client.get( reverse('companies_edit', args=(self.company1.id,)) ) self.assertEqual(response.status_code, 200)
class CompanyUnauthdViewTests(TestCase): def setUp(self): user = User(username='******') user.set_password('password') user.full_clean() user.save() self.company = Company(name='Tramcar', url='http://www.tramcar.org', site_id=1, user_id=user.id) self.company.full_clean() self.company.save() def test_index_view(self): response = self.client.get(reverse('companies_index')) self.assertEqual(response.status_code, 200) def test_new_view(self): response = self.client.get(reverse('companies_new')) self.assertRedirects(response, '/login/?next=/companies/new') def test_show_view(self): response = self.client.get(self.company.get_absolute_url()) self.assertEqual(response.status_code, 200) def test_show_view_without_slug_redirects_to_slug(self): response = self.client.get( reverse('companies_show', args=(self.company.id, ))) self.assertRedirects(response, self.company.get_absolute_url(), status_code=301) def test_show_view_does_not_display_edit_link(self): response = self.client.get(self.company.get_absolute_url()) url = reverse('companies_edit', args=(self.company.id, )) edit = '<a class="btn btn-primary btn-sm" ' \ 'href="%s">Edit Company</a>' % url self.assertNotContains(response, edit) def test_edit_view(self): response = self.client.get( reverse('companies_edit', args=(self.company.id, ))) url = reverse('companies_edit', args=(self.company.id, )) self.assertRedirects(response, '/login/?next=%s' % url)
class CompanyUnauthdViewTests(TestCase): def setUp(self): user = User(username='******') user.set_password('password') user.full_clean() user.save() self.company = Company(name='Tramcar', url='http://www.tramcar.org', site_id=1, user_id=user.id) self.company.full_clean() self.company.save() def test_index_view(self): response = self.client.get(reverse('companies_index')) self.assertEqual(response.status_code, 200) def test_new_view(self): response = self.client.get(reverse('companies_new')) self.assertRedirects(response, '/login/?next=/companies/new') def test_show_view(self): response = self.client.get(self.company.get_absolute_url()) self.assertEqual(response.status_code, 200) def test_show_view_without_slug_redirects_to_slug(self): response = self.client.get( reverse('companies_show', args=(self.company.id,)) ) self.assertRedirects( response, self.company.get_absolute_url(), status_code=301 ) def test_show_view_does_not_display_edit_link(self): response = self.client.get(self.company.get_absolute_url()) url = reverse('companies_edit', args=(self.company.id,)) edit = '<a class="btn btn-primary btn-sm" ' \ 'href="%s">Edit Company</a>' % url self.assertNotContains(response, edit) def test_edit_view(self): response = self.client.get( reverse('companies_edit', args=(self.company.id,)) ) url = reverse('companies_edit', args=(self.company.id,)) self.assertRedirects(response, '/login/?next=%s' % url)
class CompanyAdminViewTests(TestCase): def setUp(self): password = '******' owner = User(username='******') owner.set_password(password) owner.full_clean() owner.save() admin = User(username='******') admin.is_staff = True admin.set_password(password) admin.full_clean() admin.save() self.company = Company(name='Tramcar', url='http://www.tramcar.org', site_id=1, user_id=owner.id) self.company.full_clean() self.company.save() self.client.post( '/login/', {'username': admin.username, 'password': password} ) def test_edit_get_view(self): response = self.client.get( reverse('companies_edit', args=(self.company.id,)) ) self.assertEqual(response.status_code, 200) def test_edit_post_view(self): company = { 'name': 'Tramcar', 'url': 'https://www.tramcar.org', 'site': 1, 'user': 1 } response = self.client.post( reverse('companies_edit', args=(self.company.id,)), company ) # Here we refresh the object otherwise it will show the old content # from before the update self.company.refresh_from_db() self.assertRedirects(response, self.company.get_absolute_url())