示例#1
0
    def test_root(self, mock_make_server):
        with open(server_config, 'w', encoding='UTF-8') as f:
            f.write("""[server]
host = 127.0.0.1
port = 7357
browse = false
""")

        server.serve(server_root)
        self.assertEqual(mock_make_server.mock_calls[2][1][1], f'Document Root: {server_root}')
示例#2
0
    def test_host_port3(self, mock_make_server):
        # domain_name (the server will actually bind to the resolved IP.)
        with open(server_config, 'w', encoding='UTF-8') as f:
            f.write("""[server]
host = localhost
port = 7357
browse = false
""")

        server.serve(server_root)
        self.assertEqual(mock_make_server.call_args[1]['host'], 'localhost')
        self.assertEqual(mock_make_server.call_args[1]['port'], 7357)
        self.assertEqual(mock_make_server.mock_calls[3][1][1], 'Listening on http://localhost:7357')
示例#3
0
    def test_host_port2(self, mock_make_server):
        # IPv6 => with []
        with open(server_config, 'w', encoding='UTF-8') as f:
            f.write("""[server]
host = ::1
port = 8000
browse = false
""")

        server.serve(server_root)
        self.assertEqual(mock_make_server.call_args[1]['host'], '::1')
        self.assertEqual(mock_make_server.call_args[1]['port'], 8000)
        self.assertEqual(mock_make_server.mock_calls[3][1][1], 'Listening on http://[::1]:8000')
示例#4
0
    def test_host_port1(self, mock_make_server):
        # IPv4
        with open(server_config, 'w', encoding='UTF-8') as f:
            f.write("""[server]
host = 127.0.0.1
port = 80
browse = false
""")

        server.serve(server_root)
        self.assertEqual(mock_make_server.call_args[1]['host'], '127.0.0.1')
        self.assertEqual(mock_make_server.call_args[1]['port'], 80)
        self.assertEqual(mock_make_server.mock_calls[3][1][1], 'Listening on http://127.0.0.1:80')
示例#5
0
    def test_command3(self, mock_make_server, mock_browser):
        # server.browse = true, browser.command set
        with open(server_config, 'w', encoding='UTF-8') as f:
            f.write("""[server]
host = 127.0.0.1
port = 80

[browser]
command = "C:\Program Files\Mozilla Firefox\firefox.exe" %s &
""")

        server.serve(server_root)
        mock_browser.assert_called_once_with('"C:\Program Files\Mozilla Firefox\firefox.exe" %s &')
示例#6
0
    def test_command2(self, mock_make_server, mock_browser):
        # server.browse = true, browser.command not set
        with open(server_config, 'w', encoding='UTF-8') as f:
            f.write("""[server]
host = 127.0.0.1
port = 80
browse = true

[browser]
command =
""")

        server.serve(server_root)
        mock_browser.assert_called_once_with(None)
示例#7
0
    def test_command1(self, mock_make_server, mock_browser):
        # server.browse = false
        with open(server_config, 'w', encoding='UTF-8') as f:
            f.write("""[server]
host = 127.0.0.1
port = 80
browse = false

[browser]
command =
""")

        server.serve(server_root)
        mock_browser.assert_not_called()
示例#8
0
    def test_ssl4(self, mock_make_server):
        # SSL with missing cert => adhoc
        with open(server_config, 'w', encoding='UTF-8') as f:
            f.write("""[server]
host = 127.0.0.1
port = 7357
ssl_on = true
ssl_key = .wsb/test.key
ssl_cert =
browse = false
""")

        server.serve(server_root)
        self.assertEqual(mock_make_server.call_args[1]['ssl_context'], 'adhoc')
示例#9
0
    def test_ssl1(self, mock_make_server):
        # SSL off
        with open(server_config, 'w', encoding='UTF-8') as f:
            f.write("""[server]
host = 127.0.0.1
port = 7357
ssl_on = false
ssl_key = .wsb/test.key
ssl_cert = .wsb/test.pem
browse = false
""")

        server.serve(server_root)
        self.assertIs(mock_make_server.call_args[1]['ssl_context'], None)
示例#10
0
    def test_url_host1(self, mock_make_server, mock_browser):
        with open(server_config, 'w', encoding='UTF-8') as f:
            f.write("""[server]
host = 127.0.0.1
port = 7357
browse = true

[app]
base =

[browser]
index =
""")

        server.serve(server_root)
        self.assertEqual(mock_make_server.mock_calls[5][0][1], 'Launching browser at http://127.0.0.1:7357 ...')
示例#11
0
    def test_ssl5(self, mock_make_server):
        # SSL with key and cert
        with open(server_config, 'w', encoding='UTF-8') as f:
            f.write("""[server]
host = 127.0.0.1
port = 7357
ssl_on = true
ssl_key = .wsb/test.key
ssl_cert = .wsb/test.pem
browse = false
""")

        server.serve(server_root)
        self.assertEqual(mock_make_server.call_args[1]['ssl_context'], (
            os.path.join(server_root, WSB_DIR, 'test.pem'),
            os.path.join(server_root, WSB_DIR, 'test.key'),
        ))
示例#12
0
    def test_url_host5(self, mock_make_server, mock_browser):
        # null host (::) => localhost
        with open(server_config, 'w', encoding='UTF-8') as f:
            f.write("""[server]
host = ::
port = 7357
browse = true

[app]
base =

[browser]
index =
""")

        server.serve(server_root)
        self.assertEqual(mock_make_server.mock_calls[5][1][1], 'Launching browser at http://localhost:7357 ...')
示例#13
0
    def test_url_path4(self, mock_make_server, mock_browser):
        # app.base set, browser.index set
        with open(server_config, 'w', encoding='UTF-8') as f:
            f.write("""[server]
host = 127.0.0.1
port = 7357
ssl_on = false
browse = true

[app]
base = /wsb
index = index.html
""")

        server.serve(server_root)
        self.assertEqual(
            mock_make_server.mock_calls[5][1][1],
            'Launching browser at http://127.0.0.1:7357/wsb/index.html ...')
示例#14
0
    def test_url_port3(self, mock_make_server, mock_browser):
        # 443 for https
        with open(server_config, 'w', encoding='UTF-8') as f:
            f.write("""[server]
host = 127.0.0.1
port = 443
ssl_on = true
browse = true

[app]
base =

[browser]
index =
""")

        server.serve(server_root)
        self.assertEqual(mock_make_server.mock_calls[5][1][1], 'Launching browser at https://127.0.0.1 ...')
示例#15
0
import os
from webscrapbook import server
root = os.path.abspath(os.path.join(__file__, '..', '..'))
server.serve(root)