Commit 2abd70b86f0254103667710e819cfc4eacdb339f

Authored by Rodrigo Siqueira de Melo
Committed by Sergio Oliveira
1 parent 197b2837

Create the test environment.

Attention: You should remove super_archives/fixtures/initial_data.json for make
the tests running.
README.rst
... ... @@ -72,3 +72,19 @@ To run Colab with development server you will have to:
72 72  
73 73 **NOTE**: In case you want to keep the configuration file else where just set the
74 74 desired location in environment variable **COLAB_SETTINGS**.
  75 +
  76 +About test
  77 +==========
  78 +
  79 +How to write a tests.
  80 +--------------------
  81 +Inside of each folder on /vagrant/colab/<folder> you can create a folder called
  82 +"tests", and inside of it implements the code for test each file.
  83 +
  84 +How to run a test
  85 +-----------------
  86 +
  87 +Follow the steps below:
  88 +
  89 +* Go to vagrant/colab/
  90 +* run: colab-admin test
... ...
colab/accounts/tests.py
... ... @@ -1,16 +0,0 @@
1   -"""
2   -This file demonstrates writing tests using the unittest module. These will pass
3   -when you run "manage.py test".
4   -
5   -Replace this with more appropriate tests for your application.
6   -"""
7   -
8   -from django.test import TestCase
9   -
10   -
11   -class SimpleTest(TestCase):
12   - def test_basic_addition(self):
13   - """
14   - Tests that 1 + 1 always equals 2.
15   - """
16   - self.assertEqual(1 + 1, 2)
colab/accounts/tests/__init__.py 0 → 100644
colab/accounts/tests/tests.py 0 → 100644
... ... @@ -0,0 +1,54 @@
  1 +"""
  2 +This file demonstrates writing tests using the unittest module. These will pass
  3 +when you run "manage.py test".
  4 +
  5 +Replace this with more appropriate tests for your application.
  6 +"""
  7 +
  8 +from django.test import TestCase
  9 +from django.test.client import RequestFactory
  10 +from django.contrib.messages.storage.fallback import FallbackStorage
  11 +from colab.accounts.views import ManageUserSubscriptionsView
  12 +from colab.accounts.views import UserProfileDetailView
  13 +from colab.accounts.models import User
  14 +from django.http.response import Http404
  15 +from colab.accounts.views import signup
  16 +
  17 +class AccountsTest(TestCase):
  18 +
  19 + def setUp(self):
  20 + self.factory = RequestFactory()
  21 +
  22 + def test_successful_signup(self):
  23 + form_data = {
  24 + 'first_name': 'John',
  25 + 'last_name': 'Doe',
  26 + 'email': 'john@doe.com',
  27 + 'username': 'johndoe',
  28 + }
  29 +
  30 + post_request = self.factory.post('/account/register/', data=form_data)
  31 +
  32 + # It makes unittest understant it must add messages
  33 + # See: https://code.djangoproject.com/ticket/17971
  34 + setattr(post_request, 'session', 'session')
  35 + messages = FallbackStorage(post_request)
  36 + setattr(post_request, '_messages', messages)
  37 +
  38 + response = signup(post_request)
  39 +
  40 + self.assertEqual('/account/johndoe', response['Location'])
  41 +
  42 +
  43 + def test_invalid_user(self):
  44 +
  45 + get_request = self.factory.get('/account/johndoe/')
  46 +
  47 + has404 = False;
  48 +
  49 + try:
  50 + response = UserProfileDetailView.as_view()(get_request, username='johndoe')
  51 + except Http404:
  52 + has404 = True;
  53 +
  54 + self.assertTrue(has404)
... ...