#!/usr/bin/env python # -*- coding: utf-8 -*- # from users.models import User, UserGroup, Role, init_all_models from django.shortcuts import reverse from django.test import TestCase, Client, TransactionTestCase from .base import gen_username, gen_name, gen_email, get_role class UserListViewTests(TransactionTestCase): def setUp(self): init_all_models() def test_a_new_user_in_list(self): username = gen_username() user = User(username=username, email=gen_email(), role=get_role()) user.save() response = self.client.get(reverse('users:user-list')) self.assertContains(response, username) def test_list_view_with_admin_user(self): response = self.client.get(reverse('users:user-list')) self.assertEqual(response.status_code, 200) self.assertContains(response, 'Admin') self.assertEqual(response.context['user_list'].count(), User.objects.all().count()) def test_pagination(self): User.generate_fake(count=20) response = self.client.get(reverse('users:user-list')) self.assertEqual(response.context['is_paginated'], True) class UserAddTests(TestCase): def setUp(self): init_all_models() def test_add_a_new_user(self): username = gen_username() data = { 'username': username, 'comment': '', 'name': gen_name(), 'email': gen_email(), 'groups': [UserGroup.objects.first().id, ], 'role': get_role().id, 'date_expired': '2086-08-06 19:12:22', } response = self.client.post(reverse('users:user-add'), data) self.assertEqual(response.status_code, 302) self.assertEqual(response['location'], reverse('users:user-list')) response = self.client.get(reverse('users:user-list')) self.assertContains(response, username)