Advertisement
Guest User

Untitled

a guest
Jan 14th, 2016
91
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Python 4.63 KB | None | 0 0
  1. # -*- coding: utf-8 -*-
  2. from __future__ import unicode_literals
  3. import json
  4. from django.test import TestCase
  5.  
  6. from django.test.client import RequestFactory
  7. from django.core.urlresolvers import reverse
  8.  
  9. from plan.factories import ProjectFactory, TagFactory
  10. from average_estimation.factories import UserFactory, CategoryFactory, DepartmentFactory
  11. from plan.models import Question
  12. from plan.utils import CustomClient
  13.  
  14. class GlobalSetUp(TestCase):
  15.     def setUp(self):
  16.         self.client = CustomClient()
  17.         self.factory = RequestFactory()
  18.         self.category = CategoryFactory.create()
  19.         self.department = DepartmentFactory.create()
  20.         self.user = UserFactory.create(department=self.department, password='admin')
  21.         self.user.technologies.add(self.category)
  22.  
  23.     def tearDown(self):
  24.         self.user.delete()
  25.         self.category.delete()
  26.         self.department.delete()
  27.  
  28.  
  29. class ProjectViewsTestCase(GlobalSetUp):
  30.  
  31.     def setUp(self):
  32.         super(ProjectViewsTestCase, self).setUp()
  33.         self.project = ProjectFactory.create()
  34.         self.project.members.add(self.user)
  35.         self.urls = {
  36.             'create': reverse('plan:project_create'),
  37.             'update': reverse('plan:project_detail', kwargs={'pk': self.project.pk}),
  38.             'list': reverse('plan:project_list')
  39.         }
  40.  
  41.     def test_project_list(self):
  42.         url = self.urls['list']
  43.         ProjectFactory.create_batch(10)
  44.         projects = ProjectFactory.create_batch(5)
  45.         for project in projects:
  46.             project.members.add(self.user)
  47.  
  48.         self.client.force_login(self.user)
  49.         response = self.client.get(url)
  50.         self.assertEqual(response.status_code, 200)
  51.         self.assertContains(response, 'project_wrapper', 6)
  52.  
  53.     def test_project_create(self):
  54.         url = self.urls['create']
  55.         data = {
  56.             'name': 'sample project',
  57.             'manager': self.user,
  58.             'members': [self.user.id,],
  59.         }
  60.         self.client.force_login(self.user)
  61.         response = self.client.post(url, data)
  62.         self.assertEqual(response.status_code, 200)
  63.  
  64.     def test_project_update(self):
  65.         url = self.urls['update']
  66.         data = {
  67.             'name': 'sample project',
  68.             'manager': self.user,
  69.             'members': [self.user.id,],
  70.         }
  71.         self.client.force_login(self.user)
  72.         response = self.client.put(url, data)
  73.         self.assertEqual(response.status_code, 200)
  74.  
  75.     def test_project_detail_invalid(self):
  76.         url = self.urls['update']
  77.         user2 = UserFactory.create(department=self.department)
  78.         user2.technologies.add(self.category)
  79.         self.client.force_login(user2)
  80.         response = self.client.get(url)
  81.         self.assertEqual(response.status_code, 404)
  82.  
  83.     def test_project_detail(self):
  84.         url = self.urls['update']
  85.         self.client.force_login(self.user)
  86.         response = self.client.get(url)
  87.         self.assertEqual(response.status_code, 200)
  88.  
  89.  
  90. class TagViewsTestCase(GlobalSetUp):
  91.  
  92.     def setUp(self):
  93.         super(TagViewsTestCase, self).setUp()
  94.         self.url = reverse('plan:project_tags')
  95.  
  96.     def test_get_list(self):
  97.         tags = TagFactory.create_batch(10)
  98.  
  99.         self.client.force_login(self.user)
  100.         response = self.client.get(self.url, {'q': tags[0].name})
  101.         self.assertEqual(response.status_code, 200)
  102.         self.assertEqual(json.loads(response.content)['total_count'], 1)
  103.  
  104.  
  105. class ProjectQuestionsViewsTestCase(GlobalSetUp):
  106.  
  107.     def setUp(self):
  108.         super(ProjectQuestionsViewsTestCase, self).setUp()
  109.         self.project = ProjectFactory.create()
  110.         self.project.members.add(self.user)
  111.         self.question = Question.objects.create(text='some', author=self.user, project=self.project)
  112.         self.urls = {
  113.             'list': reverse('plan:base_questions', kwargs={'pk': self.project.pk}),
  114.             'create': reverse('plan:create_question', kwargs={'pk': self.project.pk}),
  115.             'update': reverse('plan:update_question', kwargs={'pk': self.project.pk, 'primary_key': self.question.pk}),
  116.             # 'list': reverse('plan:project_list')
  117.         }
  118.  
  119.     def test_add_question(self):
  120.         url = self.urls['create']
  121.         data = {
  122.             'text': 'sample question',
  123.         }
  124.         response = self.client.post(url, json.dumps(data), content_type='application/json',
  125.                                     HTTP_X_REQUESTED_WITH='XMLHttpRequest')
  126.         self.assertEqual(response.status_code, 200)
  127.         url = self.urls['list']
  128.         response = self.client.get(url)
  129.         self.assertContains(response, 'some')
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement