class HtmlValidation(TestCase): fixtures = [ 'products-all.yaml', 'customers-54730.yaml', 'quickpages.yaml', 'home-all.yaml' ] def setUp(self): self.client = ValidatingClient() def test_main_page(self): response = self.client.get("https://eracks.com/") self.assertEqual(response.status_code, 200) def test_services_page(self): response = self.client.get("https://eracks.com/services/") self.assertEqual(response.status_code, 200) def test_contact_page(self): response = self.client.get("https://eracks.com/contact/") self.assertEqual(response.status_code, 200) def test_customers_page(self): response = self.client.get("https://eracks.com/customers/") self.assertEqual(response.status_code, 200) def test_cart_page(self): response = self.client.get("https://eracks.com/cart/") self.assertEqual(response.status_code, 200) def test_showroom_page(self): response = self.client.get("https://eracks.com/showroom/") self.assertEqual(response.status_code, 200) def test_partners_page(self): response = self.client.get("https://eracks.com/partners/") self.assertEqual(response.status_code, 200) def test_press_page(self): response = self.client.get("https://eracks.com/press/") self.assertEqual(response.status_code, 200) def test_corporate_page(self): response = self.client.get("https://eracks.com/corporate/") self.assertEqual(response.status_code, 200) #def test_product_premium(self): # response = self.client.get("https://eracks.com/products/general-purpose/PREMIUM/") # self.assertEqual(response.status_code, 200) def test_product_dmz(self): response = self.client.get( "https://eracks.com/products/firewall-servers/DMZ/") self.assertEqual(response.status_code, 200)
class Tests(TestCase): def setUp(self): super(Tests, self).setUp() self.client = ValidatingClient() def test_render_home_page(self): response = self.client.get('/') self.assertEqual(response.status_code, 200) def test_render_not_valid(self): response = self.client.get('/not/') self.assertEqual(response.status_code, 200)
class HtmlValidation(TestCase): fixtures = ['products.yaml', 'quickpages.yaml', 'home.yaml'] def setUp(self): self.client = ValidatingClient() def test_main_page(self): response = self.client.get("https://eracks.com/") self.assertEqual(response.status_code, 200) def test_services_page(self): response = self.client.get("https://eracks.com/services/") self.assertEqual(response.status_code, 200) def test_contact_page(self): response = self.client.get("https://eracks.com/contact/") self.assertEqual(response.status_code, 200) def test_customers_page(self): response = self.client.get("https://eracks.com/customers/") self.assertEqual(response.status_code, 200) def test_cart_page(self): response = self.client.get("https://eracks.com/cart/") self.assertEqual(response.status_code, 200) def test_showroom_page(self): response = self.client.get("https://eracks.com/showroom/") self.assertEqual(response.status_code, 200) def test_partners_page(self): response = self.client.get("https://eracks.com/partners/") self.assertEqual(response.status_code, 200) def test_press_page(self): response = self.client.get("https://eracks.com/press/") self.assertEqual(response.status_code, 200) def test_corporate_page(self): response = self.client.get("https://eracks.com/corporate/") self.assertEqual(response.status_code, 200) #def test_product_premium(self): # response = self.client.get("https://eracks.com/products/general-purpose/PREMIUM/") # self.assertEqual(response.status_code, 200) def test_product_dmz(self): response = self.client.get("https://eracks.com/products/firewall-servers/DMZ/") self.assertEqual(response.status_code, 200)
class HomePageTests(TestCase): """UnitTests for the home page application view""" if django.VERSION[:2] >= (1, 7): # Django 1.7 requires an explicit setup() when running tests in PTVS @classmethod def setUpClass(cls): super(HomePageTests, cls).setUpClass() django.setup() def setUp(self): super(HomePageTests, self).setUp() self.client = ValidatingClient() def test_home_url_resolves_to_home_page_view(self): """Dummy one test! Just for experience""" found = resolve('/') self.assertEqual(found.func, home) def test_home_page_returns_correct_html(self): """Check that home page url returns valid HTML page html validator used - ValidatingClient (https://github.com/peterbe/django-html-validator)""" response = self.client.get('/') self.assertEqual(response.status_code, 200) def test_home_page_render_correct_template(self): request = HttpRequest() response = home(request) expected_html = render_to_string('app/index.html') self.assertEqual(response.content.decode(), expected_html)
class TestValidHTML(TestCase): def setUp(self): super(TestValidHTML, self).setUp() self.client = ValidatingClient() def test_landing_page_html(self): response = self.client.get('/') self.assertEquals(response.status_code, 200)
class CheckTeamJoin(TestCase): def setUp(self): self.client = ValidatingClient() self.user = User.objects.create_user('test_user', '*****@*****.**', 'secret') self.user.save() self.client.login(username='******', password='******') self.user0 = User.objects.create_user('test_user0', '*****@*****.**', 'secret') self.user0.save() self.team = Team(name='team') self.team.save() self.team.members.add(self.user0) self.team.save() def tearDown(self): self.user0.delete() self.user.delete() self.team.delete() def test_logged_user_team_join(self): with self.settings(CONTEST_BEGIN_DATE=one_day_after(), CONTEST_END_DATE=two_days_after()): url = '/team/join/request/' + str(self.team.pk) + '/' response = self.client.get(url) response = self.client.post(url, {}) self.assertRedirects(response, reverse('team_list'), status_code=302, target_status_code=200) # Trying to resubmit response = self.client.post(url, {}) self.assertRedirects(response, reverse('team_list'), status_code=302, target_status_code=200) self.client.logout() self.client.login(username='******', password='******') fake_key = '1' url = '/team/join/accept/' + str(self.team.pk) + '/' + fake_key + '/' response = self.client.post(url, {}) key = TeamJoinRequest.objects.get(pk=1).key url = '/team/join/accept/' + str(self.team.pk) + '/' + key + '/' response = self.client.post(url, {})
class CheckSettings(TestCase): def setUp(self): self.client = ValidatingClient() self.user = User.objects.create_user('test_user', '*****@*****.**', 'secret') self.user.save() self.client.login(username='******', password='******') def test_updating_settings(self): response = self.client.get('/accounts/settings/') self.assertEqual(response.status_code, 200) data = response.context['form'].initial data['status'] = 'Bac+1' data['organisation'] = 'organisation' response = self.client.post('/accounts/settings/', data)
class CheckSignUp(TestCase): def setUp(self): self.client = ValidatingClient() def test_signup(self): with self.settings(CONTEST_BEGIN_DATE=one_day_after(), CONTEST_END_DATE=two_days_after()): response = self.client.get('/accounts/signup/') self.assertEqual(response.status_code, 200) data = response.context['form'].initial data['username'] = '******' data['password'] = '******' data['password_confirm'] = 'password' data['email'] = '*****@*****.**' data['status'] = 'Bac+1' data['organisation'] = 'organisation' response = self.client.post('/accounts/signup/', data)
class CheckTeamCreation(TestCase): def setUp(self): self.client = ValidatingClient() self.user = User.objects.create_user('test_user', '*****@*****.**', 'secret') self.user.save() self.client.login(username='******', password='******') def tearDown(self): self.user.delete() def test_logged_user_team_create(self): with self.settings(CONTEST_BEGIN_DATE=one_day_after(), CONTEST_END_DATE=two_days_after()): response = self.client.get(reverse('team_create'), follow=True) self.assertEqual(response.status_code, 200) data = response.context['form'].initial data['name'] = 'team' response = self.client.post(reverse('team_create'), data)
class CheckRedirectionFromPrivatePages(TestCase): """Check if all private pages are properly redirected to public pages.""" def setUp(self): self.client = ValidatingClient() self.user = User.objects.create_user('test_user', '*****@*****.**', 'secret') self.user.save() self.team = Team(name='team') self.team.save() self.team.members.add(self.user) self.team.save() self.client = ValidatingClient() def tearDown(self): self.team.delete() self.user.delete() def test_redirection_accounts_logout(self): response = self.client.get('/accounts/logout/', follow=True) self.assertRedirects(response, reverse('home'), status_code=302, target_status_code=200) def test_redirection_accounts_settings(self): response = self.client.get('/accounts/settings/', follow=True) self.assertRedirects(response, '/accounts/login/?next=/accounts/settings/', status_code=302, target_status_code=200) def test_redirection_accounts_password(self): response = self.client.get('/accounts/password/', follow=True) self.assertRedirects(response, '/accounts/password/reset/', status_code=302, target_status_code=200) def test_redirection_accounts_delete(self): response = self.client.get('/accounts/delete/', follow=True) self.assertRedirects(response, reverse('home'), status_code=302, target_status_code=200) def test_redirection_team_create(self): response = self.client.get(reverse('team_create'), follow=True) self.assertRedirects(response, '/accounts/login/?next=/team/create/', status_code=302, target_status_code=200) def test_redirection_team_quit(self): response = self.client.get('/team/quit/1/', follow=True) self.assertRedirects(response, '/accounts/login/?next=/team/quit/1/', status_code=302, target_status_code=200)
class CheckLoggedUserPages(TestCase): """Check if a logged user can access to private and public pages.""" def setUp(self): self.now = timezone.now() self.client = ValidatingClient() self.user = User.objects.create_user('test_user', '*****@*****.**', 'secret') self.user.save() self.client.login(username='******', password='******') self.team = Team(name='team', is_active=True) self.team.save() self.team.members.add(self.user) self.team.save() self.user0 = User.objects.create_user('test_user0', '*****@*****.**', 'secret') self.user0.save() self.team0 = Team(name='team0', is_active=True) self.team0.save() self.team0.members.add(self.user0) self.team0.save() self.category = Category(name='category') self.category.save() self.challenge = Challenge(category=self.category, name='challenge', key='12345') self.challenge.save() self.validation = Validation(date=self.now, user=self.user, team=self.team, challenge=self.challenge) self.validation.save() self.validation0 = Validation(date=self.now, user=self.user0, team=self.team0, challenge=self.challenge) self.validation0.save() def tearDown(self): self.validation0.delete() self.validation.delete() self.team0.delete() self.user0.delete() self.team.delete() self.user.delete() self.challenge.delete() self.category.delete() def test_logged_user_accounts_logout(self): response = self.client.get('/accounts/logout/') self.assertEqual(response.status_code, 200) def test_logged_user_accounts_settings(self): response = self.client.get('/accounts/settings/') self.assertEqual(response.status_code, 200) def test_logged_user_accounts_password(self): response = self.client.get('/accounts/password/') self.assertEqual(response.status_code, 200) def test_logged_user_accounts_delete(self): response = self.client.get('/accounts/delete/') self.assertEqual(response.status_code, 200) def test_logged_user_homepage(self): # Before contest with self.settings(CONTEST_BEGIN_DATE=one_day_after(), CONTEST_END_DATE=two_days_after()): response = self.client.get(reverse('home')) self.assertEqual(response.status_code, 200) # During contest with self.settings(CONTEST_BEGIN_DATE=one_day_before(), CONTEST_END_DATE=one_day_after()): response = self.client.get(reverse('home')) self.assertEqual(response.status_code, 200) # After contest with self.settings(CONTEST_BEGIN_DATE=two_days_before(), CONTEST_END_DATE=one_day_before()): response = self.client.get(reverse('home')) self.assertEqual(response.status_code, 200) def test_logged_user_team_list(self): with self.settings(CONTEST_BEGIN_DATE=one_day_after(), CONTEST_END_DATE=two_days_after()): self.team.delete() response = self.client.get(reverse('team_list')) self.assertEqual(response.status_code, 200) self.team.save() with self.settings(CONTEST_BEGIN_DATE=one_day_before(), CONTEST_END_DATE=one_day_after()): response = self.client.get(reverse('team_list')) self.assertEqual(response.status_code, 200) def test_logged_user_team_create_with_a_team(self): response = self.client.get(reverse('team_create'), follow=True) self.assertRedirects(response, '/?next=/team/create/', status_code=302, target_status_code=200) def test_logged_user_team_quit(self): response = self.client.get('/team/quit/1/') self.assertEqual(response.status_code, 200) def test_logged_user_non_existing_team_quit(self): response = self.client.get('/team/quit/10/') self.assertEqual(response.status_code, 404) def test_logged_user_contestant_list(self): response = self.client.get(reverse('contestant_list')) self.assertEqual(response.status_code, 200) def test_logged_user_challenge_list(self): response = self.client.get(reverse('challenges')) self.assertEqual(response.status_code, 200) def test_logged_user_ranking_list(self): response = self.client.get(reverse('ranking')) self.assertEqual(response.status_code, 200) def test_logged_user_rules(self): response = self.client.get(reverse('rules')) self.assertEqual(response.status_code, 200) def test_logged_user_about(self): response = self.client.get(reverse('about')) self.assertEqual(response.status_code, 200)
class CheckPublicPages(TestCase): """Check if all public pages are accessible to anonymous users.""" def setUp(self): self.now = timezone.now() self.client = ValidatingClient() self.user = User.objects.create_user('test_user', '*****@*****.**', 'secret') self.user.save() self.team = Team(name='team', is_active=True) self.team.save() self.team.members.add(self.user) self.team.save() self.category = Category(name='category') self.category.save() self.challenge = Challenge(category=self.category, name='challenge', key='12345') self.challenge.save() self.validation = Validation(date=timezone.now(), user=self.user, team=self.team, challenge=self.challenge) self.validation.save() def tearDown(self): self.validation.delete() self.team.delete() self.user.delete() self.challenge.delete() self.category.delete() def test_public_homepage(self): # Before contest with self.settings(CONTEST_BEGIN_DATE=one_day_after(), CONTEST_END_DATE=two_days_after()): response = self.client.get(reverse('home')) self.assertEqual(response.status_code, 200) # During contest with self.settings(CONTEST_BEGIN_DATE=one_day_before(), CONTEST_END_DATE=one_day_after()): response = self.client.get(reverse('home')) self.assertEqual(response.status_code, 200) # After contest with self.settings(CONTEST_BEGIN_DATE=two_days_before(), CONTEST_END_DATE=one_day_before()): response = self.client.get(reverse('home')) self.assertEqual(response.status_code, 200) def test_public_team_list_empty(self): self.team.delete() response = self.client.get(reverse('team_list')) self.assertEqual(response.status_code, 200) self.team.save() def test_public_team_list(self): response = self.client.get(reverse('team_list')) self.assertEqual(response.status_code, 200) def test_public_team_1(self): response = self.client.get('/team/1/') self.assertEqual(response.status_code, 200) def test_public_contestant_list_empty(self): with self.settings(CONTEST_BEGIN_DATE=one_day_before(), CONTEST_END_DATE=one_day_after()): self.user.delete() response = self.client.get(reverse('contestant_list')) self.assertEqual(response.status_code, 200) self.user.save() def test_public_contestant_list(self): response = self.client.get(reverse('contestant_list')) self.assertEqual(response.status_code, 200) def test_public_contestant_1(self): response = self.client.get('/contestant/1/') self.assertEqual(response.status_code, 200) def test_public_challenge_list_empty(self): self.challenge.delete() # Before contest with self.settings(CONTEST_BEGIN_DATE=one_day_after(), CONTEST_END_DATE=two_days_after()): response = self.client.get(reverse('challenges')) self.assertEqual(response.status_code, 200) # During contest with self.settings(CONTEST_BEGIN_DATE=one_day_before(), CONTEST_END_DATE=one_day_after()): response = self.client.get(reverse('challenges')) self.assertEqual(response.status_code, 200) # After contest with self.settings(CONTEST_BEGIN_DATE=two_days_before(), CONTEST_END_DATE=one_day_before()): response = self.client.get(reverse('challenges')) self.assertEqual(response.status_code, 200) self.challenge.save() def test_public_challenge_list(self): # Before contest with self.settings(CONTEST_BEGIN_DATE=one_day_after(), CONTEST_END_DATE=two_days_after()): response = self.client.get(reverse('challenges')) self.assertEqual(response.status_code, 200) # During contest with self.settings(CONTEST_BEGIN_DATE=one_day_before(), CONTEST_END_DATE=one_day_after()): response = self.client.get(reverse('challenges')) self.assertEqual(response.status_code, 200) # After contest with self.settings(CONTEST_BEGIN_DATE=two_days_before(), CONTEST_END_DATE=one_day_before()): response = self.client.get(reverse('challenges')) self.assertEqual(response.status_code, 200) def test_public_ranking_list_empty(self): self.validation.delete() self.team.is_active = False self.team.save() response = self.client.get(reverse('ranking')) self.assertEqual(response.status_code, 200) self.team.is_active = True self.team.save() self.validation.save() def test_public_ranking_list(self): # Before contest with self.settings(CONTEST_BEGIN_DATE=one_day_after(), CONTEST_END_DATE=two_days_after()): response = self.client.get(reverse('ranking')) self.assertEqual(response.status_code, 200) # During contest with self.settings(CONTEST_BEGIN_DATE=one_day_before(), CONTEST_END_DATE=one_day_after()): response = self.client.get(reverse('ranking')) self.assertEqual(response.status_code, 200) # After contest with self.settings(CONTEST_BEGIN_DATE=two_days_before(), CONTEST_END_DATE=one_day_before()): response = self.client.get(reverse('ranking')) self.assertEqual(response.status_code, 200) def test_public_rules(self): response = self.client.get(reverse('rules')) self.assertEqual(response.status_code, 200) def test_public_about(self): response = self.client.get(reverse('about')) self.assertEqual(response.status_code, 200) def test_public_login(self): response = self.client.get('/accounts/login/') self.assertEqual(response.status_code, 200) def test_public_account_signup(self): response = self.client.get('/accounts/signup/') self.assertEqual(response.status_code, 200)
class MyTest(TestCase): def path(self, url): return url # return '/' + '/'.join(url.split('/')[3:]) def setUp(self): update_icons_db() self.icon = MessageIcon.objects.get(name="photo.gif") self.icon0 = MessageIcon.objects.get(name="1a.gif") self.icon1 = MessageIcon.objects.get(name="union-jack.png") self.client = ValidatingClient() self.iseult = User.objects.create_user( username='******', email='*****@*****.**', password='******', ) self.cesar = User.objects.create_user( username='******', email='*****@*****.**', password='******', ) self._post_first_message() def access(self, name, code): response = self.client.get(reverse(name)) self.assertEqual(response.status_code, code) def access_url(self, url, code): response = self.client.get(url) self.assertEqual(response.status_code, code) def _post_first_message(self): self.client.login( username='******', password='******', ) response = self.client.post( reverse('forum:new'), { 'icon': self.icon.pk, 'title': 'test title ®®', 'text': ''' tstra auileæ~ǜß®\œù©þðijþ’ù&æþiàn auieiiausrecpiu t'yx.lmmd =51476415678986451u4àuià,jl(è«épt,i. ''', } ) self.assertEqual(response.status_code, 302) self.first_message = Message.objects.get(title='test title ®®') self.assertEqual( self.path(response['Location']), self.first_message.get_absolute_url(), ) self.assertEqual( self.path(response['Location']), reverse( 'forum:message', args=[self.first_message.pk] ) + '#forum-message', ) self.access_url(self.first_message.get_absolute_url(), 200) self.client.logout()
class UrlTests(TestCase): base_url = 'http://test.testserver.test' def get_path(self, url): return '/' + '/'.join(url.split('/')[3:]) def setUp(self): self.client = ValidatingClient() self.first_object = Object.objects.create(name='first one') self.second_object = Object.objects.create(name='second one') self.third_object = Object.objects.create(name='third one') self.fourth_object = Object.objects.create(name='fourth one') self.edit_1_url = reverse( 'object-edit', args=[self.first_object.pk] ) self.delete_1_url = reverse( 'object-delete', args=[self.first_object.pk] ) self.delete_2_url = reverse( 'object-delete', args=[self.second_object.pk] ) def test_access(self): urls = ( reverse('object-list'), reverse('object-add'), ) for name in ('object-edit', 'object-delete'): for object in Object.objects.all(): urls += (reverse(name, args=[object.pk]),) for url in urls: response = self.client.get(url) self.assertEqual(response.status_code, 200) def test_simple_post_edition_redirection(self): response = self.client.get(self.edit_1_url) self.assertEqual(response.status_code, 200) response = self.client.post( self.edit_1_url, { 'name': 'first new name', 'next': self.base_url + reverse('object-list') } ) # success url : the last visited page (home page) self.assertEqual(response.status_code, 302) self.assertEqual( self.get_path(response['Location']), reverse('object-list') ) def test_simple_post_deletion_redirection(self): response = self.client.get(self.delete_1_url) self.assertEqual(response.status_code, 200) response = self.client.post( self.delete_1_url, { 'next': self.base_url + reverse('object-list') } ) # success url : the last visited page (home page) self.assertEqual(response.status_code, 302) self.assertEqual( self.get_path(response['Location']), reverse('object-list') ) def test_invalid_next_redirection(self): for next_arg in ( self.base_url + reverse('object-list') + 'unknown_address', self.base_url + 'arpisiueasrsui', 'rauisreiuaesrsr/ruie', ' ', '', ): response = self.client.get(self.edit_1_url) self.assertEqual(response.status_code, 200) response = self.client.post( self.edit_1_url, { 'name': 'new name, next = ', 'next': next_arg, } ) # success url : the home page ("next" is not valid) self.assertEqual(response.status_code, 302) self.assertEqual( self.get_path(response['Location']), reverse('object-list') ) def test_not_next_in_POST_redirection(self): response = self.client.get(self.edit_1_url) self.assertEqual(response.status_code, 200) response = self.client.post( self.edit_1_url, { 'name': 'new name, next = ', } ) # success url : the home page (no "next" value) self.assertEqual(response.status_code, 302) self.assertEqual( self.get_path(response['Location']), reverse('object-list') ) def test_post_edition_good_redirection(self): response = self.client.get(self.edit_1_url) self.assertEqual(response.status_code, 200) response = self.client.post( self.edit_1_url, { 'name': 'first new name', 'next': self.base_url + self.delete_2_url } ) # success url : the last visited page (delete_2_url) self.assertEqual(response.status_code, 302) self.assertEqual( self.get_path(response['Location']), self.delete_2_url, ) def test_post_edition_good_redirection_without_baseurl(self): response = self.client.get(self.edit_1_url) self.assertEqual(response.status_code, 200) response = self.client.post( self.edit_1_url, { 'name': 'first new name', 'next': self.delete_2_url } ) # success url : the last visited page (delete_2_url) self.assertEqual(response.status_code, 302) self.assertEqual( self.get_path(response['Location']), self.delete_2_url, ) def test_post_deletion_bad_redirection(self): response = self.client.get(self.delete_1_url) self.assertEqual(response.status_code, 200) response = self.client.post( self.delete_1_url, { 'next': self.base_url + self.edit_1_url } ) # success url : not the last visited page (edit_1_url) # because this object does not exist any more, # but the index page self.assertEqual(response.status_code, 302) self.assertEqual( self.get_path(response['Location']), reverse('object-list') ) def test_post_bad_edition_bad_redirection(self): response = self.client.get( self.edit_1_url, ) self.assertEqual(response.status_code, 200) response = self.client.post( self.edit_1_url, { 'name': '', # invalid form 'next': self.base_url + self.delete_2_url } ) self.assertEqual(response.status_code, 200) response = self.client.post( self.edit_1_url, { 'name': 'my best value', # correction 'next': self.base_url + self.edit_1_url, } ) self.assertEqual(response.status_code, 302) # we don't want to be redirected to the edit form self.assertEqual( self.get_path(response['Location']), reverse('object-list') ) def test_post_bad_creation_bad_redirection(self): response = self.client.get( reverse('object-add') ) self.assertEqual(response.status_code, 200) response = self.client.post( reverse('object-add'), { 'name': '', # invalid form 'next': self.base_url + self.edit_1_url } ) self.assertEqual(response.status_code, 200) response = self.client.post( reverse('object-add'), { 'name': 'my best value', # correction 'next': self.base_url + reverse('object-add') } ) self.assertEqual(Object.objects.count(), 5) self.assertEqual(response.status_code, 302) # we don't want to be redirected to the creation form self.assertEqual( self.get_path(response['Location']), reverse('object-list') )
class PaijiTests(TestCase): def setUp(self): super(PaijiTests, self).setUp() modules.autodiscover() self.client = ValidatingClient() self.alice = User.objects.create_user( 'ermentrude', password='******', ) self.sigefroid = User.objects.create_user( 'sigefroid', password='******', sidebar_left=[name for name, _ in modules.blocks.items()], topbar=[u'garfield-comic'], sidebar_right=None, ) def test_lang_homepage(self): # without lang response = self.client.get('/') self.assertEqual(response.status_code, 302) # redirected to "/fr/" or ... response = self.client.get(response['Location']) self.assertEqual(response.status_code, 302) # redirected to "/fr/social/" or... response = self.client.get(response['Location']) self.assertEqual(response.status_code, 200) for code in dict(settings.LANGUAGES): response = self.client.get('/' + code + '/') self.assertEqual(response.status_code, 302) response = self.client.get(response['Location']) self.assertEqual(response.status_code, 200) response = self.client.get('/es/') self.assertEqual(response.status_code, 404) response = self.client.get('/ii/') self.assertEqual(response.status_code, 404) def test_user_homepage(self): self.client.login( username='******', password='******', ) self.test_lang_homepage() self.client.logout() self.client.login( username='******', password='******', ) self.test_lang_homepage() def test_account(self): self.client.logout() # account url without lang response = self.client.get(reverse('account')) self.assertEqual(response.status_code, 302) # sign-in url without lang response = self.client.get(response['Location']) self.assertEqual(response.status_code, 302) # sign-in url with lang response = self.client.get(response['Location']) self.assertEqual(response.status_code, 200) self.client.login( username='******', password='******', ) response = self.client.get(reverse('account')) self.assertEqual(response.status_code, 200)
class UrlTests(TestCase): base_url = 'http://test.testserver.test' def get_path(self, url): return '/' + '/'.join(url.split('/')[3:]) def setUp(self): self.client = ValidatingClient() self.first_object = Object.objects.create(name='first one') self.second_object = Object.objects.create(name='second one') self.third_object = Object.objects.create(name='third one') self.fourth_object = Object.objects.create(name='fourth one') self.edit_1_url = reverse('object-edit', args=[self.first_object.pk]) self.delete_1_url = reverse('object-delete', args=[self.first_object.pk]) self.delete_2_url = reverse('object-delete', args=[self.second_object.pk]) def test_access(self): urls = ( reverse('object-list'), reverse('object-add'), ) for name in ('object-edit', 'object-delete'): for object in Object.objects.all(): urls += (reverse(name, args=[object.pk]), ) for url in urls: response = self.client.get(url) self.assertEqual(response.status_code, 200) def test_simple_post_edition_redirection(self): response = self.client.get(self.edit_1_url) self.assertEqual(response.status_code, 200) response = self.client.post( self.edit_1_url, { 'name': 'first new name', 'next': self.base_url + reverse('object-list') }) # success url : the last visited page (home page) self.assertEqual(response.status_code, 302) self.assertEqual(self.get_path(response['Location']), reverse('object-list')) def test_simple_post_deletion_redirection(self): response = self.client.get(self.delete_1_url) self.assertEqual(response.status_code, 200) response = self.client.post( self.delete_1_url, {'next': self.base_url + reverse('object-list')}) # success url : the last visited page (home page) self.assertEqual(response.status_code, 302) self.assertEqual(self.get_path(response['Location']), reverse('object-list')) def test_invalid_next_redirection(self): for next_arg in ( self.base_url + reverse('object-list') + 'unknown_address', self.base_url + 'arpisiueasrsui', 'rauisreiuaesrsr/ruie', ' ', '', ): response = self.client.get(self.edit_1_url) self.assertEqual(response.status_code, 200) response = self.client.post(self.edit_1_url, { 'name': 'new name, next = ', 'next': next_arg, }) # success url : the home page ("next" is not valid) self.assertEqual(response.status_code, 302) self.assertEqual(self.get_path(response['Location']), reverse('object-list')) def test_not_next_in_POST_redirection(self): response = self.client.get(self.edit_1_url) self.assertEqual(response.status_code, 200) response = self.client.post(self.edit_1_url, { 'name': 'new name, next = ', }) # success url : the home page (no "next" value) self.assertEqual(response.status_code, 302) self.assertEqual(self.get_path(response['Location']), reverse('object-list')) def test_post_edition_good_redirection(self): response = self.client.get(self.edit_1_url) self.assertEqual(response.status_code, 200) response = self.client.post(self.edit_1_url, { 'name': 'first new name', 'next': self.base_url + self.delete_2_url }) # success url : the last visited page (delete_2_url) self.assertEqual(response.status_code, 302) self.assertEqual( self.get_path(response['Location']), self.delete_2_url, ) def test_post_edition_good_redirection_without_baseurl(self): response = self.client.get(self.edit_1_url) self.assertEqual(response.status_code, 200) response = self.client.post(self.edit_1_url, { 'name': 'first new name', 'next': self.delete_2_url }) # success url : the last visited page (delete_2_url) self.assertEqual(response.status_code, 302) self.assertEqual( self.get_path(response['Location']), self.delete_2_url, ) def test_post_deletion_bad_redirection(self): response = self.client.get(self.delete_1_url) self.assertEqual(response.status_code, 200) response = self.client.post(self.delete_1_url, {'next': self.base_url + self.edit_1_url}) # success url : not the last visited page (edit_1_url) # because this object does not exist any more, # but the index page self.assertEqual(response.status_code, 302) self.assertEqual(self.get_path(response['Location']), reverse('object-list')) def test_post_bad_edition_bad_redirection(self): response = self.client.get(self.edit_1_url, ) self.assertEqual(response.status_code, 200) response = self.client.post( self.edit_1_url, { 'name': '', # invalid form 'next': self.base_url + self.delete_2_url }) self.assertEqual(response.status_code, 200) response = self.client.post( self.edit_1_url, { 'name': 'my best value', # correction 'next': self.base_url + self.edit_1_url, }) self.assertEqual(response.status_code, 302) # we don't want to be redirected to the edit form self.assertEqual(self.get_path(response['Location']), reverse('object-list')) def test_post_bad_creation_bad_redirection(self): response = self.client.get(reverse('object-add')) self.assertEqual(response.status_code, 200) response = self.client.post( reverse('object-add'), { 'name': '', # invalid form 'next': self.base_url + self.edit_1_url }) self.assertEqual(response.status_code, 200) response = self.client.post( reverse('object-add'), { 'name': 'my best value', # correction 'next': self.base_url + reverse('object-add') }) self.assertEqual(Object.objects.count(), 5) self.assertEqual(response.status_code, 302) # we don't want to be redirected to the creation form self.assertEqual(self.get_path(response['Location']), reverse('object-list'))