test_serve.py (1744B)
1 # This Source Code Form is subject to the terms of the Mozilla Public 2 # License, v. 2.0. If a copy of the MPL was not distributed with this 3 # file, You can obtain one at http://mozilla.org/MPL/2.0/. 4 5 import mozunit 6 7 from marionette_harness.runner import serve 8 from marionette_harness.runner.serve import iter_proc, iter_url 9 10 11 def teardown_function(func): 12 for server in [s for s in iter_proc(serve.servers) if s.is_alive]: 13 server.stop() 14 server.kill() 15 16 17 def test_registered_servers(): 18 # [(name, factory), ...] 19 assert serve.registered_servers[0][0] == "http" 20 assert serve.registered_servers[1][0] == "https" 21 22 23 def test_globals(): 24 assert serve.default_doc_root is not None 25 assert serve.registered_servers is not None 26 assert serve.servers is not None 27 28 29 def test_start(): 30 serve.start() 31 assert len(serve.servers) == 2 32 assert "http" in serve.servers 33 assert "https" in serve.servers 34 for url in iter_url(serve.servers): 35 assert isinstance(url, str) 36 37 38 def test_start_with_custom_root(tmpdir_factory): 39 tdir = tmpdir_factory.mktemp("foo") 40 serve.start(str(tdir)) 41 for server in iter_proc(serve.servers): 42 assert server.doc_root == tdir 43 44 45 def test_iter_proc(): 46 serve.start() 47 for server in iter_proc(serve.servers): 48 server.stop() 49 50 51 def test_iter_url(): 52 serve.start() 53 for url in iter_url(serve.servers): 54 assert isinstance(url, str) 55 56 57 def test_where_is(): 58 serve.start() 59 assert serve.where_is("/") == serve.servers["http"][1].get_url("/") 60 assert serve.where_is("/", on="https") == serve.servers["https"][1].get_url("/") 61 62 63 if __name__ == "__main__": 64 mozunit.main("-p", "no:terminalreporter", "--log-tbpl=-", "--capture", "no")