-
Notifications
You must be signed in to change notification settings - Fork 0
/
test_take_screenshot.py
65 lines (55 loc) · 2.65 KB
/
test_take_screenshot.py
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
__author__ = 'amir'
from flask import request
import ddt
import unittest
from take_screenshot import(
app,
TIME_OUT,
get_time_out
)
from mock import patch
@ddt.ddt
class TestTakeScreenShot(unittest.TestCase):
def setUp(self):
"""
Setting up app config.
"""
self.app = app.test_client()
def shutdown_server(self):
func = request.environ.get('werkzeug.server.shutdown')
if func is None:
raise RuntimeError('Not running with the Werkzeug Server')
func()
@ddt.data(
(None, None, None, 400, 30),
("", "", "", 404, 30),
("https://courses.edx.org/courses/course-v1:HarvardX+SPU27x+2015_Q2/courseware/af896b2371b94d409a5d2b6a3ddfb958/b2659040fa0743bba6ae16ba6832d18f/", None, None, 400, 30),
("https://courses.edx.org/courses/course-v1:HarvardX+SPU27x+2015_Q2/courseware/af896b2371b94d409a5d2b6a3ddfb958/b2659040fa0743bba6ae16ba6832d18f/", "", "", 404, 30),
("https://courses.edx.org/courses/course-v1:HarvardX+SPU27x+2015_Q2/courseware/af896b2371b94d409a5d2b6a3ddfb958/b2659040fa0743bba6ae16ba6832d18f/", "amir.qayyum@arbisoft.com", None, 400, 30),
("https://courses.edx.org/courses/course-v1:HarvardX+SPU27x+2015_Q2/courseware/af896b2371b94d409a5d2b6a3ddfb958/b2659040fa0743bba6ae16ba6832d18f/", "amir.qayyum@arbisoft.com", "", 404, 30),
("https://courses.edx.org/courses/course-v1:HarvardX+SPU27x+2015_Q2/courseware/af896b2371b94d409a5d2b6a3ddfb958/b2659040fa0743bba6ae16ba6832d18f/", "amir.qayyum@arbisoft.com", "Test1234", 200, 30),
("https://courses.edx.org/courses/course-v1:HarvardX+SPU27x+2015_Q2/courseware/af896b2371b94d409a5d2b6a3ddfb958/b2659040fa0743bba6ae16ba6832d18f/", "amir.qayyum@arbisoft.com", "Test1234", 404, 1)
)
@ddt.unpack
def test_take_screen_shot(self, url, user_name, password, expected, timeout):
with patch("take_screenshot.get_time_out", return_value=timeout):
response = self.app.post(
'/',
data=dict(
url=url,
user_name=user_name,
password=password
),
follow_redirects=True
)
if expected is not 200:
self.assertEqual(response.status_code, expected)
else:
assert "<img src=" in response.data
def test_take_screen_shot_form_rendering(self):
response = self.app.get('/')
assert "Enter information of xblock you want to get screenshot" in response.data
def test_get_time_out(self):
self.assertEqual(get_time_out(), TIME_OUT)
if __name__ == '__main__':
unittest.main()