Projet

Général

Profil

0001-tests-add-tests-for-backoffice-13343.patch

Serghei Mihai (congés, retour 15/05), 23 février 2017 12:28

Télécharger (6,13 ko)

Voir les différences:

Subject: [PATCH] tests: add tests for backoffice (#13343)

 tests/test_manager.py | 144 ++++++++++++++++++++++++++++++++++++++++++++++++++
 1 file changed, 144 insertions(+)
 create mode 100644 tests/test_manager.py
tests/test_manager.py
1
import os
2
import pytest
3

  
4
from django.core.urlresolvers import reverse
5
from django.contrib.auth.models import User
6

  
7
pytestmark = pytest.mark.django_db
8

  
9
@pytest.fixture
10
def admin_user():
11
    try:
12
        user = User.objects.get(username='admin')
13
    except User.DoesNotExist:
14
        user = User.objects.create_superuser('admin', email=None, password='admin')
15
    return user
16

  
17
def login(app, username='admin', password='admin'):
18
    login_page = app.get('/login/')
19
    login_form = login_page.forms[0]
20
    login_form['username'] = username
21
    login_form['password'] = password
22
    resp = login_form.submit()
23
    assert resp.status_int == 302
24
    return app
25

  
26
def test_unlogged_access(app):
27
    # connect while not being logged in
28
    assert app.get('/', status=301).location == 'http://localhost:80/manage/'
29
    assert app.get('/manage/', status=302).location == 'http://localhost:80/login/?next=/manage/'
30

  
31
def test_access(app, admin_user):
32
    app = login(app)
33
    resp = app.get('/manage/', status=200)
34
    assert 'New category' in resp.body
35

  
36
def test_logout(app, admin_user):
37
    app = login(app)
38
    app.get('/logout/')
39
    assert app.get('/', status=301).location == 'http://localhost:80/manage/'
40

  
41
def test_create_category(app, admin_user):
42
    app = login(app)
43
    resp = app.get(reverse('manage'))
44
    assert 'New category' in resp.content
45
    category_page = resp.click('New category')
46
    category_form = category_page.forms[0]
47
    category_form['name'] = 'Alerts'
48
    resp = category_form.submit()
49
    assert resp.status_int == 302
50
    assert resp.location == 'http://localhost:80/manage/'
51
    resp = app.get('http://localhost:80/manage/')
52
    assert 'Alerts' in resp.content
53

  
54
def test_edit_category(app, admin_user):
55
    app = login(app)
56
    category_page = app.get(reverse('add_category'))
57
    category_form = category_page.forms[0]
58
    category_form['name'] = 'Alerts'
59
    resp = category_form.submit()
60
    assert resp.status_int == 302
61
    assert resp.location == 'http://localhost:80/manage/'
62
    resp = app.get('http://localhost:80/manage/')
63
    assert 'Alerts' in resp.content
64
    assert '0 announces' in resp.content
65
    assert '0 subscriptions' in resp.content
66
    resp = resp.click(href=reverse('view_category', kwargs={'slug': 'alerts'}))
67
    assert 'Edit' in resp.content
68
    edit_page = resp.click('Edit')
69
    edit_form = edit_page.forms[0]
70
    edit_form['name'] = 'New Alerts'
71
    resp = edit_form.submit()
72
    assert resp.status_int == 302
73
    assert resp.location == 'http://localhost:80/manage/category/alerts/'
74

  
75
def test_delete_category(app, admin_user):
76
    app = login(app)
77
    category_page = app.get(reverse('add_category'))
78
    category_form = category_page.forms[0]
79
    category_form['name'] = 'Alerts'
80
    resp = category_form.submit()
81
    assert resp.status_int == 302
82
    assert resp.location == 'http://localhost:80/manage/'
83
    resp = app.get('http://localhost:80/manage/')
84
    assert 'Alerts' in resp.content
85
    assert '0 announces' in resp.content
86
    assert '0 subscriptions' in resp.content
87
    resp = resp.click(href=reverse('view_category', kwargs={'slug': 'alerts'}))
88
    assert 'Delete' in resp.content
89
    delete_page = resp.click('Delete')
90
    delete_form = delete_page.forms[0]
91
    resp = delete_form.submit()
92
    assert resp.status_int == 302
93
    assert resp.location == 'http://localhost:80/manage/'
94

  
95
def test_create_announce(app, admin_user):
96
    app = login(app)
97
    category_page = app.get(reverse('add_category'))
98
    category_form = category_page.forms[0]
99
    category_form['name'] = 'Alerts'
100
    resp = category_form.submit()
101
    assert resp.status_int == 302
102
    assert resp.location == 'http://localhost:80/manage/'
103
    resp = app.get('http://localhost:80/manage/')
104
    assert 'Alerts' in resp.content
105
    resp = resp.click(href=reverse('view_category', kwargs={'slug': 'alerts'}))
106
    assert 'New announce' in resp.content
107
    announce_page = resp.click('New announce')
108
    announce_form = announce_page.forms[0]
109
    announce_form['title'] = 'First announce'
110
    announce_form['text'] = 'announce content'
111
    resp = announce_form.submit()
112
    assert resp.status_int == 302
113
    assert resp.location == 'http://localhost:80/manage/category/alerts/'
114
    resp = app.get('http://localhost:80/manage/category/alerts/')
115
    assert 'First announce' in resp.content
116

  
117

  
118
def test_delete_announce(app, admin_user):
119
    app = login(app)
120
    category_page = app.get(reverse('add_category'))
121
    category_form = category_page.forms[0]
122
    category_form['name'] = 'Alerts'
123
    resp = category_form.submit()
124
    assert resp.status_int == 302
125
    assert resp.location == 'http://localhost:80/manage/'
126
    resp = app.get('http://localhost:80/manage/')
127
    resp = resp.click(href=reverse('view_category', kwargs={'slug': 'alerts'}))
128
    assert 'New announce' in resp.content
129
    announce_page = resp.click('New announce')
130
    announce_form = announce_page.forms[0]
131
    announce_form['title'] = 'First announce'
132
    announce_form['text'] = 'announce content'
133
    resp = announce_form.submit()
134
    assert resp.status_int == 302
135
    assert resp.location == 'http://localhost:80/manage/category/alerts/'
136
    resp = app.get('http://localhost:80/manage/category/alerts/')
137
    assert 'First announce' in resp.content
138
    resp = resp.click('First announce')
139
    assert 'Delete' in resp.content
140
    announce_delete_page = resp.click('Delete')
141
    announce_delete_form = announce_delete_page.forms[0]
142
    resp = announce_delete_form.submit()
143
    assert resp.status_int == 302
144
    assert resp.location == 'http://localhost:80/manage/category/alerts/'
0
-