Web   ·   Wiki   ·   Activities   ·   Blog   ·   Lists   ·   Chat   ·   Meeting   ·   Bugs   ·   Git   ·   Translate   ·   Archive   ·   People   ·   Donate
summaryrefslogtreecommitdiffstats
path: root/CeibalEncuestaWeb/tests.py
blob: 1fed945b1e86755a4c67cc77c2214b774fee1645 (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
import unittest
import socket
import contextlib
import sys

from fabric.api import local

from CeibalEncuesta import WebServer


@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()


if __name__ == '__main__':
    unittest.main()