Completed
Push — master ( 45f0c4...1295f2 )
by Vijay
9s
created

test_workshop_wrong_action()   B

Complexity

Conditions 4

Size

Total Lines 63

Duplication

Lines 0
Ratio 0 %

Importance

Changes 1
Bugs 0 Features 0
Metric Value
c 1
b 0
f 0
dl 0
loc 63
rs 8.8945
cc 4

How to fix   Long Method   

Long Method

Small methods make your code easier to understand, in particular if combined with a good name. Besides, if your method is small, finding a good name is usually much easier.

For example, if you find yourself adding comments to a method's body, this is usually a good sign to extract the commented part to a new method, and use the comment as a starting point when coming up with a good name for this new method.

Commonly applied refactorings include:

1
from datetime import datetime, timedelta
2
3
import re
4
from wye.base.constants import WorkshopStatus
5
# from wye.workshops.models import Workshop
6
from .. import factories as f
7
8
9
def test_workshop_wrong_action(base_url, browser, outbox):
10
    tutor_type = f.create_usertype(slug='tutor', display_name='tutor')
11
    poc_type = f.create_usertype(slug='poc', display_name='poc')
12
13
    user = f.create_user()
14
    user.set_password('123123')
15
    user.save()
16
    url = base_url + '/workshop/'
17
    browser.visit(url)
18
    browser.fill('login', user.email)
19
    browser.fill('password', '123123')
20
    browser.find_by_css('[type=submit]')[0].click()
21
    assert len(outbox) == 1
22
    mail = outbox[0]
23
    confirm_link = re.findall(r'http.*/accounts/.*/', mail.body)
24
    assert confirm_link
25
    browser.visit(confirm_link[0])
26
    assert browser.title, "Confirm E-mail Address"
27
    browser.find_by_css('[type=submit]')[0].click()
28
29
    user.profile.usertype.clear()
30
    user.profile.usertype.add(poc_type)
31
    user.save()
32
    org = f.create_organisation()
33
    org.user.add(user)
34
    user.profile.interested_locations.add(org.location)
35
    user.profile.location = org.location
36
    user.profile.save()
37
    org.save()
38
39
    workshop = f.create_workshop(requester=org)
40
41
    workshop.expected_date = datetime.now() + timedelta(days=20)
42
    workshop.status = WorkshopStatus.REQUESTED
43
    workshop.location = org.location
44
    workshop.save()
45
    url = base_url + '/workshop/update/{}/'.format(workshop.id)
46
    browser.visit(url)
47
    browser.fill('login', user.email)
48
    browser.fill('password', '123123')
49
    browser.find_by_css('[type=submit]')[0].click()
50
51
    section1 = f.create_workshop_section(name='section1')
52
    location = org.location
53
    state = f.create_state(name='state2')
54
55
    user.profile.usertype.clear()
56
    user.profile.usertype.add(tutor_type)
57
58
    user.profile.location = location
59
    user.profile.interested_states.add(state)
60
    user.profile.mobile = '1234567890'
61
    user.profile.interested_sections.add(section1)
62
    user.profile.interested_level = 1
63
    user.profile.github = 'https://github.com'
64
    user.profile.save()
65
    user.save()
66
67
    url = base_url + '/workshop/'+'feedback/000/'
68
    browser.visit(url)
69
70
    url = base_url + '/workshop/feedback/{}/'.format(workshop.id)
71
    browser.visit(url)
72
73
74
def test_workshop_flow(base_url, browser, outbox):
75
    tutor_type = f.create_usertype(slug='tutor', display_name='tutor')
76
    poc_type = f.create_usertype(slug='poc', display_name='poc')
77
78
    user = f.create_user()
79
    user.set_password('123123')
80
    user.save()
81
    url = base_url + '/workshop/'
82
    browser.visit(url)
83
    browser.fill('login', user.email)
84
    browser.fill('password', '123123')
85
    browser.find_by_css('[type=submit]')[0].click()
86
    assert len(outbox) == 1
87
    mail = outbox[0]
88
    confirm_link = re.findall(r'http.*/accounts/.*/', mail.body)
89
    assert confirm_link
90
    browser.visit(confirm_link[0])
91
    assert browser.title, "Confirm E-mail Address"
92
    browser.find_by_css('[type=submit]')[0].click()
93
94
    user.profile.usertype.clear()
95
    user.profile.usertype.add(poc_type)
96
    user.save()
97
    org = f.create_organisation()
98
    org.user.add(user)
99
    user.profile.interested_locations.add(org.location)
100
    user.profile.location = org.location
101
    user.profile.save()
102
    org.save()
103
104
    workshop = f.create_workshop(requester=org)
105
106
    workshop.expected_date = datetime.now() + timedelta(days=20)
107
    workshop.status = WorkshopStatus.REQUESTED
108
    workshop.location = org.location
109
    workshop.save()
110
    url = base_url + '/workshop/update/{}/'.format(workshop.id)
111
    browser.visit(url)
112
    browser.fill('login', user.email)
113
    browser.fill('password', '123123')
114
    browser.find_by_css('[type=submit]')[0].click()
115
116
    section1 = f.create_workshop_section(name='section1')
117
    location = org.location
118
    state = f.create_state(name='state2')
119
120
    user.profile.usertype.clear()
121
    user.profile.usertype.add(tutor_type)
122
123
    user.profile.location = location
124
    user.profile.interested_states.add(state)
125
    user.profile.mobile = '1234567890'
126
    user.profile.interested_sections.add(section1)
127
    user.profile.interested_level = 1
128
    user.profile.github = 'https://github.com'
129
    user.profile.save()
130
    user.save()
131
132
    url = base_url + '/workshop/'
133
    browser.visit(url)
134
135
    accept_workshop_link = browser.find_by_text('Accept')[0]
136
    assert accept_workshop_link
137
    accept_workshop_link.click()
138
139
    user.profile.usertype.clear()
140
    user.profile.usertype.add(poc_type)
141
    user.profile.save()
142
    user.save()
143
144
#   checking to move requested workshop in hold state
145
    url = base_url + '/workshop/'
146
    browser.visit(url)
147
    hold_workshop_link = browser.find_by_text('Hold')[0]
148
    assert hold_workshop_link
149
    hold_workshop_link.click()
150
151
#   checking to move on hold workshop into requested state
152
    url = base_url + '/workshop/'
153
    browser.visit(url)
154
    publish_workshop_link = browser.find_by_text('Publish/Request')[0]
155
    assert publish_workshop_link
156
    publish_workshop_link.click()
157
    hold_workshop_link = browser.find_by_text('Hold')[0]
158
    assert hold_workshop_link
159
    hold_workshop_link.click()
160
161
#   checking declined state
162
    decline_workshop_link = browser.find_by_text('Decline')[0]
163
    assert decline_workshop_link
164
    decline_workshop_link.click()
165
    workshop.status = WorkshopStatus.REQUESTED
166
    workshop.is_active = True
167
    workshop.save()
168
169
    url = base_url + '/workshop/'
170
    browser.visit(url)
171
    accept_workshop_link = browser.find_by_text('Accept')[0]
172
    assert accept_workshop_link
173
    accept_workshop_link.click()
174
175
    workshop.expected_date = datetime.now() + timedelta(days=-22)
176
    workshop.save()
177
178
    url = base_url + '/workshop/'
179
    browser.visit(url)
180
181
    f.create_workshop_rating()
182
    publish_workshop_link = browser.find_by_text('Share Feedback')[0]
183
    assert publish_workshop_link
184
    publish_workshop_link.click()
185
    url = base_url + '/workshop/feedback/{}'.format(workshop.id)
186
    browser.visit(url)
187
    browser.check('rating0-1')
188
    browser.fill('comment', "Testing comments")
189
190
    browser.find_by_css('[type=submit]')[0].click()
191