Added Mock server fixture and initial test
							parent
							
								
									ec0ebbc169
								
							
						
					
					
						commit
						1265b2e20b
					
				@ -0,0 +1,36 @@
 | 
				
			|||||||
 | 
					from http.server import BaseHTTPRequestHandler, HTTPServer
 | 
				
			||||||
 | 
					import socket
 | 
				
			||||||
 | 
					from threading import Thread
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					import pytest
 | 
				
			||||||
 | 
					import requests
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					class MockServerRequestHandler(BaseHTTPRequestHandler):
 | 
				
			||||||
 | 
					    def do_GET(self):
 | 
				
			||||||
 | 
					        self.send_response(requests.codes.ok)
 | 
				
			||||||
 | 
					        self.end_headers()
 | 
				
			||||||
 | 
					        return
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					def get_free_port():
 | 
				
			||||||
 | 
					    """Simple function that acquires a port, closes it, and returns what that port numnber was"""
 | 
				
			||||||
 | 
					    s = socket.socket(socket.AF_INET, type=socket.SOCK_STREAM)
 | 
				
			||||||
 | 
					    s.bind(('localhost', 0))
 | 
				
			||||||
 | 
					    address, port = s.getsockname()
 | 
				
			||||||
 | 
					    s.close()
 | 
				
			||||||
 | 
					    return port
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					# TODO determine what scope this fixture should have
 | 
				
			||||||
 | 
					@pytest.fixture
 | 
				
			||||||
 | 
					def mockserver():
 | 
				
			||||||
 | 
					    # Setup
 | 
				
			||||||
 | 
					    mock_server_port = get_free_port()
 | 
				
			||||||
 | 
					    mock_server = HTTPServer(('localhost', mock_server_port), MockServerRequestHandler)
 | 
				
			||||||
 | 
					    mock_server_thread = Thread(target=mock_server.serve_forever)
 | 
				
			||||||
 | 
					    mock_server_thread.setDaemon(True)
 | 
				
			||||||
 | 
					    mock_server_thread.start()
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    return mock_server_port
 | 
				
			||||||
 | 
					
 | 
				
			||||||
@ -0,0 +1,10 @@
 | 
				
			|||||||
 | 
					import requests
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					def test_request_response(mockserver):
 | 
				
			||||||
 | 
					    mock_server_port = mockserver
 | 
				
			||||||
 | 
					    url = 'http://localhost:{port}/users'.format(port=mock_server_port)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    response = requests.get(url)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    assert response.ok
 | 
				
			||||||
 | 
					
 | 
				
			||||||
					Loading…
					
					
				
		Reference in New Issue