blob: 43aa4843d931a94f2ee7855d45d73ac1ec0a7f5e (
plain)
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
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
|
import unittest
import socket
import contextlib
import sys
from fabric.api import local
from CeibalEncuesta import WebServer, Browser
@contextlib.contextmanager
def redirect_stdout(stream):
sys.stdout = sys.stderr = stream
yield
sys.stdout = sys.__stdout__
class ContainerTest(unittest.TestCase):
def setUp(self):
self.result = local('python CeibalEncuesta.py', capture=True)
def test_base_run(self):
result = self.result
command_succeeded = (result.return_code == 0)
self.assertTrue(command_succeeded)
def test_start_web_server(self):
result = self.result
self.assertIn('Opening web server', result)
def test_start_browser(self):
result = self.result
self.assertIn('Opening browser', result)
class WebServerTest(unittest.TestCase):
def test_connection(self):
with open('/dev/null') as null:
with redirect_stdout(null):
webserver = WebServer()
webserver.start()
try:
s = socket.socket()
s.connect(("localhost", 9004))
except Exception as e:
self.fail(e)
finally:
s.close()
webserver.stop()
class MockWebKit(object):
def WebView(self):
pass
class MockGTK(object):
def ScrolledWindow(self):
pass
def main(self):
pass
class CeibalEncuestaTest(unittest.TestCase):
def test_open_browser(self):
web_render = MockWebKit()
widget_toolkit = MockGTK()
b = Browser(web_render, widget_toolkit)
b.start()
if __name__ == '__main__':
unittest.main()
|