When executing my pipeline, 2 out of 4 tests seem to fail, I have been racking my brain to try and figure this out, but have come up with nothing so far.
Below is the an extract of the error received:
2023-07-24T17:39:29.1521473Z ##[section]Starting: Run Unit Tests
2023-07-24T17:39:29.1716125Z ==============================================================================
2023-07-24T17:39:29.1716459Z Task : PowerShell
2023-07-24T17:39:29.1716648Z Description : Run a PowerShell script on Linux, macOS, or Windows
2023-07-24T17:39:29.1716917Z Version : 2.200.0
2023-07-24T17:39:29.1717074Z Author : Microsoft Corporation
2023-07-24T17:39:29.1717277Z Help : https://docs.microsoft.com/azure/devops/pipelines/tasks/utility/powershell
2023-07-24T17:39:29.1717525Z ==============================================================================
2023-07-24T17:39:34.1605819Z Generating script.
2023-07-24T17:39:34.2441216Z ========================== Starting Command Output ===========================
2023-07-24T17:39:34.3014598Z ##[command]"C:\Windows\System32\WindowsPowerShell\v1.0\powershell.exe" -NoLogo -NoProfile -NonInteractive -ExecutionPolicy Unrestricted -Command ". 'C:\agent\_work\_temp\93acf55c-d7ab-4e63-960d-90d4655b7b43.ps1'"
2023-07-24T17:39:50.8065498Z ============================= test session starts =============================
2023-07-24T17:39:50.8067494Z platform win32 -- Python 3.11.3, pytest-7.4.0, pluggy-1.0.0
2023-07-24T17:39:50.8069912Z rootdir: C:\app
2023-07-24T17:39:50.8070641Z plugins: html-3.2.0, metadata-3.0.0, mock-3.11.1
2023-07-24T17:39:50.8071628Z collected 4 items
2023-07-24T17:39:50.8071958Z
2023-07-24T17:39:55.2325073Z tests\test_app.py FF.. [100%]
2023-07-24T17:39:55.2326874Z
2023-07-24T17:39:55.2328059Z ================================== FAILURES ===================================
2023-07-24T17:39:55.2329064Z ____________________________ test_storage_endpoint ____________________________
2023-07-24T17:39:55.2329563Z
2023-07-24T17:39:55.2330249Z auth_mock = <MagicMock name='auth' id='2083278375440'>
2023-07-24T17:39:55.2331104Z client = <FlaskClient <Flask 'web_app.app'>>
2023-07-24T17:39:55.2331468Z
2023-07-24T17:39:55.2332358Z @patch('web_app.app.auth')
2023-07-24T17:39:55.2333149Z def test_storage_endpoint(auth_mock, client):
2023-07-24T17:39:55.2334018Z auth_mock.get_user.return_value = {'name': 'Test User'}
2023-07-24T17:39:55.2334701Z
2023-07-24T17:39:55.2335430Z response = client.get('/storage', follow_redirects=True)
2023-07-24T17:39:55.2336495Z > assert response.status_code == 200, f"Expected status code 200, but received {response.status_code}"
2023-07-24T17:39:55.2337573Z E AssertionError: Expected status code 200, but received 500
2023-07-24T17:39:55.2338340Z E assert 500 == 200
2023-07-24T17:39:55.2339211Z E + where 500 = <WrapperTestResponse streamed [500 INTERNAL SERVER ERROR]>.status_code
2023-07-24T17:39:55.2339710Z
2023-07-24T17:39:55.2340433Z tests\test_app.py:21: AssertionError
2023-07-24T17:39:55.2341347Z ------------------------------ Captured log call ------------------------------
2023-07-24T17:39:55.2342305Z ERROR web_app.app:app.py:1414 Exception on /storage [GET]
2023-07-24T17:39:55.2343215Z Traceback (most recent call last):
2023-07-24T17:39:55.2344084Z File "C:\app\.venv\Lib\site-packages\urllib3\connection.py", line 200, in _new_conn
2023-07-24T17:39:55.2344983Z sock = connection.create_connection(
2023-07-24T17:39:55.2348394Z ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
2023-07-24T17:39:55.2349281Z File "C:\app\.venv\Lib\site-packages\urllib3\util\connection.py", line 60, in create_connection
2023-07-24T17:39:55.2350335Z for res in socket.getaddrinfo(host, port, family, socket.SOCK_STREAM):
2023-07-24T17:39:55.2351175Z ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
2023-07-24T17:39:55.2351959Z File "C:\Python\Lib\socket.py", line 962, in getaddrinfo
2023-07-24T17:39:55.2352939Z for res in _socket.getaddrinfo(host, port, family, type, proto, flags):
2023-07-24T17:39:55.2353872Z ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
2023-07-24T17:39:55.2357061Z socket.gaierror: [Errno 11001] getaddrinfo failed
2023-07-24T17:39:55.2357442Z
2023-07-24T17:39:55.2358431Z The above exception was the direct cause of the following exception:
2023-07-24T17:39:55.2358821Z
2023-07-24T17:39:55.2359441Z Traceback (most recent call last):
2023-07-24T17:39:55.2360404Z File "C:\app\.venv\Lib\site-packages\urllib3\connectionpool.py", line 790, in urlopen
2023-07-24T17:39:55.2361455Z response = self._make_request(
2023-07-24T17:39:55.2362111Z ^^^^^^^^^^^^^^^^^^^
2023-07-24T17:39:55.2363014Z File "C:\app\.venv\Lib\site-packages\urllib3\connectionpool.py", line 491, in _make_request
2023-07-24T17:39:55.2363874Z raise new_e
2023-07-24T17:39:55.2364757Z File "C:\app\.venv\Lib\site-packages\urllib3\connectionpool.py", line 467, in _make_request
2023-07-24T17:39:55.2365653Z self._validate_conn(conn)
2023-07-24T17:39:55.2366601Z File "C:\app\.venv\Lib\site-packages\urllib3\connectionpool.py", line 1092, in _validate_conn
2023-07-24T17:39:55.2367485Z conn.connect()
2023-07-24T17:39:55.2368348Z File "C:\app\.venv\Lib\site-packages\urllib3\connection.py", line 604, in connect
2023-07-24T17:39:55.2369246Z self.sock = sock = self._new_conn()
2023-07-24T17:39:55.2369950Z ^^^^^^^^^^^^^^^^
2023-07-24T17:39:55.2370805Z File "C:\app\.venv\Lib\site-packages\urllib3\connection.py", line 207, in _new_conn
2023-07-24T17:39:55.2371787Z raise NameResolutionError(self.host, self, e) from e
2023-07-24T17:39:55.2373123Z urllib3.exceptions.NameResolutionError: <urllib3.connection.HTTPSConnection object at 0x000001E50F1CC4D0>: Failed to resolve 'none' ([Errno 11001] getaddrinfo failed)
2023-07-24T17:39:55.2373924Z
2023-07-24T17:39:55.2374700Z The above exception was the direct cause of the following exception:
2023-07-24T17:39:55.2375136Z
2023-07-24T17:39:55.2375780Z Traceback (most recent call last):
2023-07-24T17:39:55.2376665Z File "C:\app\.venv\Lib\site-packages\requests\adapters.py", line 486, in send
2023-07-24T17:39:55.2377501Z resp = conn.urlopen(
2023-07-24T17:39:55.2378059Z ^^^^^^^^^^^^^
2023-07-24T17:39:55.2378834Z File "C:\app\.venv\Lib\site-packages\urllib3\connectionpool.py", line 844, in urlopen
2023-07-24T17:39:55.2379644Z retries = retries.increment(
2023-07-24T17:39:55.2380269Z ^^^^^^^^^^^^^^^^^^
2023-07-24T17:39:55.2381021Z File "C:\app\.venv\Lib\site-packages\urllib3\util\retry.py", line 515, in increment
2023-07-24T17:39:55.2381993Z raise MaxRetryError(_pool, url, reason) from reason # type: ignore[arg-type]
2023-07-24T17:39:55.2382755Z ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
2023-07-24T17:39:55.2384347Z urllib3.exceptions.MaxRetryError: HTTPSConnectionPool(host='none', port=443): Max retries exceeded with url: /api/storage/aggregates/None (Caused by NameResolutionError("<urllib3.connection.HTTPSConnection object at 0x000001E50F1CC4D0>: Failed to resolve 'none' ([Errno 11001] getaddrinfo failed)"))
2023-07-24T17:39:55.2385849Z
2023-07-24T17:39:55.2386365Z During handling of the above exception, another exception occurred:
2023-07-24T17:39:55.2386749Z
2023-07-24T17:39:55.2387251Z Traceback (most recent call last):
2023-07-24T17:39:55.2388155Z File "C:\app\.venv\Lib\site-packages\flask\app.py", line 2190, in wsgi_app
2023-07-24T17:39:55.2389040Z response = self.full_dispatch_request()
2023-07-24T17:39:55.2389404Z ^^^^^^^^^^^^^^^^^^^^^^^^^^^^
2023-07-24T17:39:55.2389856Z File "C:\app\.venv\Lib\site-packages\flask\app.py", line 1486, in full_dispatch_request
2023-07-24T17:39:55.2390324Z rv = self.handle_user_exception(e)
2023-07-24T17:39:55.2390692Z ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
2023-07-24T17:39:55.2391121Z File "C:\app\.venv\Lib\site-packages\flask\app.py", line 1484, in full_dispatch_request
2023-07-24T17:39:55.2391594Z rv = self.dispatch_request()
2023-07-24T17:39:55.2391916Z ^^^^^^^^^^^^^^^^^^^^^^^
2023-07-24T17:39:55.2392707Z File "C:\app\.venv\Lib\site-packages\flask\app.py", line 1469, in dispatch_request
2023-07-24T17:39:55.2394127Z return self.ensure_sync(self.view_functions[rule.endpoint])(**view_args)
2023-07-24T17:39:55.2394584Z ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
2023-07-24T17:39:55.2394956Z File "C:\app\web_app\app.py", line 74, in storage
2023-07-24T17:39:55.2395522Z response = requests.get(url, auth=(app.config['USERNAME'], app.config['PASSWORD']), verify=False)
2023-07-24T17:39:55.2396029Z ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
2023-07-24T17:39:55.2396487Z File "C:\app\.venv\Lib\site-packages\requests\api.py", line 73, in get
2023-07-24T17:39:55.2396969Z return request("get", url, params=params, **kwargs)
2023-07-24T17:39:55.2397336Z ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
2023-07-24T17:39:55.2397762Z File "C:\app\.venv\Lib\site-packages\requests\api.py", line 59, in request
2023-07-24T17:39:55.2398244Z return session.request(method=method, url=url, **kwargs)
2023-07-24T17:39:55.2398647Z ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
2023-07-24T17:39:55.2399065Z File "C:\app\.venv\Lib\site-packages\requests\sessions.py", line 589, in request
2023-07-24T17:39:55.2399545Z resp = self.send(prep, **send_kwargs)
2023-07-24T17:39:55.2399886Z ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
2023-07-24T17:39:55.2400314Z File "C:\app\.venv\Lib\site-packages\requests\sessions.py", line 703, in send
2023-07-24T17:39:55.2400761Z r = adapter.send(request, **kwargs)
2023-07-24T17:39:55.2401120Z ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
2023-07-24T17:39:55.2401524Z File "C:\app\.venv\Lib\site-packages\requests\adapters.py", line 519, in send
2023-07-24T17:39:55.2402035Z raise ConnectionError(e, request=request)
2023-07-24T17:39:55.2402931Z requests.exceptions.ConnectionError: HTTPSConnectionPool(host='none', port=443): Max retries exceeded with url: /api/storage/aggregates/None (Caused by NameResolutionError("<urllib3.connection.HTTPSConnection object at 0x000001E50F1CC4D0>: Failed to resolve 'none' ([Errno 11001] getaddrinfo failed)"))
2023-07-24T17:39:55.2403864Z ___________________________ test_storage2_endpoint ____________________________
2023-07-24T17:39:55.2404176Z
2023-07-24T17:39:55.2404549Z auth_mock = <MagicMock name='auth' id='2083312522576'>
2023-07-24T17:39:55.2404976Z client = <FlaskClient <Flask 'web_app.app'>>
2023-07-24T17:39:55.2405172Z
2023-07-24T17:39:55.2405475Z @patch('web_app.app.auth')
2023-07-24T17:39:55.2405882Z def test_storage2_endpoint(auth_mock, client):
2023-07-24T17:39:55.2406328Z auth_mock.get_user.return_value = {'name': 'Test User'}
2023-07-24T17:39:55.2406686Z
2023-07-24T17:39:55.2407052Z response = client.get('/storage2', follow_redirects=True)
2023-07-24T17:39:55.2407611Z > assert response.status_code == 200, f"Expected status code 200, but received {response.status_code}"
2023-07-24T17:39:55.2408156Z E AssertionError: Expected status code 200, but received 500
2023-07-24T17:39:55.2408575Z E assert 500 == 200
2023-07-24T17:39:55.2409018Z E + where 500 = <WrapperTestResponse streamed [500 INTERNAL SERVER ERROR]>.status_code
2023-07-24T17:39:55.2409559Z
2023-07-24T17:39:55.2409909Z tests\test_app.py:29: AssertionError
2023-07-24T17:39:55.2410397Z ------------------------------ Captured log call ------------------------------
2023-07-24T17:39:55.2410890Z ERROR web_app.app:app.py:1414 Exception on /storage2 [GET]
2023-07-24T17:39:55.2411340Z Traceback (most recent call last):
2023-07-24T17:39:55.2411800Z File "C:\app\.venv\Lib\site-packages\urllib3\connection.py", line 200, in _new_conn
2023-07-24T17:39:55.2412284Z sock = connection.create_connection(
2023-07-24T17:39:55.2412624Z ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
2023-07-24T17:39:55.2413261Z File "C:\app\.venv\Lib\site-packages\urllib3\util\connection.py", line 60, in create_connection
2023-07-24T17:39:55.2414146Z for res in socket.getaddrinfo(host, port, family, socket.SOCK_STREAM):
2023-07-24T17:39:55.2414559Z ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
2023-07-24T17:39:55.2414966Z File "C:\Python\Lib\socket.py", line 962, in getaddrinfo
2023-07-24T17:39:55.2415449Z for res in _socket.getaddrinfo(host, port, family, type, proto, flags):
2023-07-24T17:39:55.2415876Z ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
2023-07-24T17:39:55.2416248Z socket.gaierror: [Errno 11001] getaddrinfo failed
2023-07-24T17:39:55.2416466Z
2023-07-24T17:39:55.2416833Z The above exception was the direct cause of the following exception:
2023-07-24T17:39:55.2417066Z
2023-07-24T17:39:55.2417377Z Traceback (most recent call last):
2023-07-24T17:39:55.2417850Z File "C:\app\.venv\Lib\site-packages\urllib3\connectionpool.py", line 790, in urlopen
2023-07-24T17:39:55.2418299Z response = self._make_request(
2023-07-24T17:39:55.2418651Z ^^^^^^^^^^^^^^^^^^^
2023-07-24T17:39:55.2419074Z File "C:\app\.venv\Lib\site-packages\urllib3\connectionpool.py", line 491, in _make_request
2023-07-24T17:39:55.2419521Z raise new_e
2023-07-24T17:39:55.2419952Z File "C:\app\.venv\Lib\site-packages\urllib3\connectionpool.py", line 467, in _make_request
2023-07-24T17:39:55.2420432Z self._validate_conn(conn)
2023-07-24T17:39:55.2420890Z File "C:\app\.venv\Lib\site-packages\urllib3\connectionpool.py", line 1092, in _validate_conn
2023-07-24T17:39:55.2421347Z conn.connect()
2023-07-24T17:39:55.2421766Z File "C:\app\.venv\Lib\site-packages\urllib3\connection.py", line 604, in connect
2023-07-24T17:39:55.2422235Z self.sock = sock = self._new_conn()
2023-07-24T17:39:55.2422588Z ^^^^^^^^^^^^^^^^
2023-07-24T17:39:55.2423026Z File "C:\app\.venv\Lib\site-packages\urllib3\connection.py", line 207, in _new_conn
2023-07-24T17:39:55.2423625Z raise NameResolutionError(self.host, self, e) from e
2023-07-24T17:39:55.2424282Z urllib3.exceptions.NameResolutionError: <urllib3.connection.HTTPSConnection object at 0x000001E50F2467D0>: Failed to resolve 'none' ([Errno 11001] getaddrinfo failed)
2023-07-24T17:39:55.2424699Z
2023-07-24T17:39:55.2425068Z The above exception was the direct cause of the following exception:
2023-07-24T17:39:55.2425304Z
2023-07-24T17:39:55.2425607Z Traceback (most recent call last):
2023-07-24T17:39:55.2426073Z File "C:\app\.venv\Lib\site-packages\requests\adapters.py", line 486, in send
2023-07-24T17:39:55.2426490Z resp = conn.urlopen(
2023-07-24T17:39:55.2426811Z ^^^^^^^^^^^^^
2023-07-24T17:39:55.2427223Z File "C:\app\.venv\Lib\site-packages\urllib3\connectionpool.py", line 844, in urlopen
2023-07-24T17:39:55.2427690Z retries = retries.increment(
2023-07-24T17:39:55.2428004Z ^^^^^^^^^^^^^^^^^^
2023-07-24T17:39:55.2428432Z File "C:\app\.venv\Lib\site-packages\urllib3\util\retry.py", line 515, in increment
2023-07-24T17:39:55.2428959Z raise MaxRetryError(_pool, url, reason) from reason # type: ignore[arg-type]
2023-07-24T17:39:55.2429382Z ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
2023-07-24T17:39:55.2430211Z urllib3.exceptions.MaxRetryError: HTTPSConnectionPool(host='none', port=443): Max retries exceeded with url: /api/storage/aggregates/None (Caused by NameResolutionError("<urllib3.connection.HTTPSConnection object at 0x000001E50F2467D0>: Failed to resolve 'none' ([Errno 11001] getaddrinfo failed)"))
2023-07-24T17:39:55.2431711Z
2023-07-24T17:39:55.2432227Z During handling of the above exception, another exception occurred:
2023-07-24T17:39:55.2432441Z
2023-07-24T17:39:55.2432770Z Traceback (most recent call last):
2023-07-24T17:39:55.2433230Z File "C:\app\.venv\Lib\site-packages\flask\app.py", line 2190, in wsgi_app
2023-07-24T17:39:55.2433704Z response = self.full_dispatch_request()
2023-07-24T17:39:55.2434054Z ^^^^^^^^^^^^^^^^^^^^^^^^^^^^
2023-07-24T17:39:55.2434526Z File "C:\app\.venv\Lib\site-packages\flask\app.py", line 1486, in full_dispatch_request
2023-07-24T17:39:55.2435177Z rv = self.handle_user_exception(e)
2023-07-24T17:39:55.2435532Z ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
2023-07-24T17:39:55.2436028Z File "C:\app\.venv\Lib\site-packages\flask\app.py", line 1484, in full_dispatch_request
2023-07-24T17:39:55.2436520Z rv = self.dispatch_request()
2023-07-24T17:39:55.2436842Z ^^^^^^^^^^^^^^^^^^^^^^^
2023-07-24T17:39:55.2437282Z File "C:\app\.venv\Lib\site-packages\flask\app.py", line 1469, in dispatch_request
2023-07-24T17:39:55.2437810Z return self.ensure_sync(self.view_functions[rule.endpoint])(**view_args)
2023-07-24T17:39:55.2438257Z ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
2023-07-24T17:39:55.2438654Z File "C:\app\web_app\app.py", line 118, in storage2
2023-07-24T17:39:55.2439216Z response = requests.get(url, auth=(app.config['USERNAME_2'], app.config['PASSWORD_2']), verify=False)
2023-07-24T17:39:55.2439773Z ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
2023-07-24T17:39:55.2440202Z File "C:\app\.venv\Lib\site-packages\requests\api.py", line 73, in get
2023-07-24T17:39:55.2440689Z return request("get", url, params=params, **kwargs)
2023-07-24T17:39:55.2441058Z ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
2023-07-24T17:39:55.2441479Z File "C:\app\.venv\Lib\site-packages\requests\api.py", line 59, in request
2023-07-24T17:39:55.2441961Z return session.request(method=method, url=url, **kwargs)
2023-07-24T17:39:55.2442369Z ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
2023-07-24T17:39:55.2442789Z File "C:\app\.venv\Lib\site-packages\requests\sessions.py", line 589, in request
2023-07-24T17:39:55.2443407Z resp = self.send(prep, **send_kwargs)
2023-07-24T17:39:55.2443957Z ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
2023-07-24T17:39:55.2444537Z File "C:\app\.venv\Lib\site-packages\requests\sessions.py", line 703, in send
2023-07-24T17:39:55.2444990Z r = adapter.send(request, **kwargs)
2023-07-24T17:39:55.2445354Z ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
2023-07-24T17:39:55.2445759Z File "C:\app\.venv\Lib\site-packages\requests\adapters.py", line 519, in send
2023-07-24T17:39:55.2446246Z raise ConnectionError(e, request=request)
2023-07-24T17:39:55.2447218Z requests.exceptions.ConnectionError: HTTPSConnectionPool(host='none', port=443): Max retries exceeded with url: /api/storage/aggregates/None (Caused by NameResolutionError("<urllib3.connection.HTTPSConnection object at 0x000001E50F2467D0>: Failed to resolve 'none' ([Errno 11001] getaddrinfo failed)"))
2023-07-24T17:39:55.2448630Z =========================== short test summary info ===========================
2023-07-24T17:39:55.2449520Z FAILED tests/test_app.py::test_storage_endpoint - AssertionError: Expected st...
2023-07-24T17:39:55.2450417Z FAILED tests/test_app.py::test_storage2_endpoint - AssertionError: Expected s...
2023-07-24T17:39:55.2451327Z ========================= 2 failed, 2 passed in 6.65s =========================
2023-07-24T17:39:56.7660939Z unit_tests_container
2023-07-24T17:39:56.9589663Z ##[error]PowerShell exited with code '1'.
2023-07-24T17:39:57.0591031Z ##[section]Finishing: Run Unit Tests
When running the below command manually the test pass successfully.
The environment variables have been stored in the pipeline and as a variable library.
docker run --env-file ./.env -p 8080:8080 web_app:test
============================= test session starts =============================
platform win32 -- Python 3.11.3, pytest-7.4.0, pluggy-1.0.0
rootdir: C:\app
plugins: html-3.2.0, metadata-3.0.0, mock-3.11.1
collected 1 item
tests\test_app.py . [100%]
============================== 1 passed in 2.48s ==============================