File: test_coverup_117.py

package info (click to toggle)
scalene 1.5.51-1
  • links: PTS, VCS
  • area: main
  • in suites: forky, sid, trixie
  • size: 15,528 kB
  • sloc: cpp: 22,930; python: 13,403; javascript: 11,769; ansic: 817; makefile: 196; sh: 45
file content (37 lines) | stat: -rw-r--r-- 1,134 bytes parent folder | download
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
# file scalene/launchbrowser.py:55-64
# lines [58, 59, 60, 61, 62, 64]
# branches ['58->59', '58->64']

import pytest
import threading
import http.server
import socket
from scalene.launchbrowser import CustomHandler, last_heartbeat
import time

@pytest.fixture(scope="module")
def server():
    # Setup: start a simple HTTP server in a separate thread
    httpd = http.server.HTTPServer(('localhost', 0), CustomHandler)
    server_thread = threading.Thread(target=httpd.serve_forever)
    server_thread.daemon = True
    server_thread.start()
    yield httpd
    # Teardown: stop the server
    httpd.shutdown()
    server_thread.join()

def test_heartbeat(server):
    # Get the server address and port
    host, port = server.server_address
    # Send a GET request to the /heartbeat path
    conn = http.client.HTTPConnection(host, port)
    conn.request("GET", "/heartbeat")
    response = conn.getresponse()
    # Check that the response is OK
    assert response.status == 200
    # Check that the last_heartbeat global variable was updated
    now = time.time()
    assert last_heartbeat <= now
    # Clean up
    conn.close()