from django.test import TestCase, Client from django.core.urlresolvers import reverse from rolepermissions.shortcuts import assign_role from users.models import User from courses.models import CourseCategory class ForumViewTestCase (TestCase): def setUp(self): self.user = User.objects.create_user( username = 'test', email = 'testing@amadeus.com', is_staff = True, is_active = True, password = 'testing' ) assign_role(self.user, 'system_admin') self.user_professor = User.objects.create_user( username = 'professor', email = 'professor@amadeus.com', is_staff = False, is_active = True, password = 'testing', type_profile = 1 ) assign_role(self.user_professor, 'professor') self.user_student = User.objects.create_user( username = 'student', email = 'student@amadeus.com', is_staff = False, is_active = True, password = 'testing', type_profile = 2 ) assign_role(self.user_student, 'student') self.category = CourseCategory.objects.create( name = 'Test Category' ) self.category.save() self.client = Client() self.client.login(username='test', password='testing') self.client_professor = Client() self.client_professor.login (username='professor', password='testing') self.client_student = Client() self.client_student.login (username='student', password='testing') ######################### CreateCatView ######################### def test_CreateCatView_ok (self): url = reverse('course:create_cat') response = self.client.get(url) self.assertEquals(response.status_code, 200) response = self.client_professor.get(url) self.assertEquals(response.status_code, 200) response = self.client_student.get(url) self.assertEquals(response.status_code, 403) def test_CreateCatView_context (self): url = reverse('course:create_cat') response = self.client.get(url) self.assertTrue('form' in response.context) response = self.client_professor.get(url) self.assertTrue('form' in response.context) def test_CreateCatView_form_error (self): url = reverse('course:create_cat') data = {'name':''} list_categories = CourseCategory.objects.all().count() response = self.client.post(url, data) self.assertEquals(list_categories, CourseCategory.objects.all().count()) response = self.client_professor.post(url, data) self.assertEquals(list_categories, CourseCategory.objects.all().count()) def test_CreateCatView_form_ok (self): url = reverse('course:create_cat') data = { 'name':'Second Category', } list_categories = CourseCategory.objects.all().count() response = self.client.post(url, data) self.assertEquals (response.status_code, 302) self.assertEquals(list_categories+1, CourseCategory.objects.all().count()) data = { 'name' : 'Third Category', } response = self.client_professor.post(url, data) self.assertEquals (response.status_code, 302) self.assertEquals(list_categories+2, CourseCategory.objects.all().count())