dbgr-server 1.1.0.dev1__py3-none-any.whl
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- dbgr_server/__init__.py +1 -0
- dbgr_server/__main__.py +61 -0
- dbgr_server/app.py +139 -0
- dbgr_server/constants.py +10 -0
- dbgr_server/routes.py +22 -0
- dbgr_server/static/fonts/MapleMono-NF-Bold.ttf +0 -0
- dbgr_server/static/fonts/MapleMono-NF-BoldItalic.ttf +0 -0
- dbgr_server/static/fonts/MapleMono-NF-Italic.ttf +0 -0
- dbgr_server/static/fonts/MapleMono-NF-Regular.ttf +0 -0
- dbgr_server/static/images/favicon.ico +0 -0
- dbgr_server/static/javascripts/dist/0d8bb5b3ee5f5dac9e44.woff2 +0 -0
- dbgr_server/static/javascripts/dist/16b1558858fe1064b5af.woff +0 -0
- dbgr_server/static/javascripts/dist/176f8f5bd5f02b3abfcf.woff2 +0 -0
- dbgr_server/static/javascripts/dist/18d00f739ff1e1c52db1.woff +0 -0
- dbgr_server/static/javascripts/dist/1b3b4f49d5b3b3fb2c20.jpg +0 -0
- dbgr_server/static/javascripts/dist/1ce08cfde36c0d81af5b.woff +0 -0
- dbgr_server/static/javascripts/dist/213eedde97d22010287c.woff +0 -0
- dbgr_server/static/javascripts/dist/2267169ee7270a22a963.woff +0 -0
- dbgr_server/static/javascripts/dist/24a9d3bbf9b715214bf5.woff +0 -0
- dbgr_server/static/javascripts/dist/2900d24e7347deaf65cd.woff +0 -0
- dbgr_server/static/javascripts/dist/2ed4651232a34d737777.woff +0 -0
- dbgr_server/static/javascripts/dist/37a7069dc30fc663c878.woff2 +0 -0
- dbgr_server/static/javascripts/dist/451d4e559d6f57cdf6a1.woff +0 -0
- dbgr_server/static/javascripts/dist/4674f8ded773cb03e824.eot +0 -0
- dbgr_server/static/javascripts/dist/498042b7fe9cd07b4fd1.woff +0 -0
- dbgr_server/static/javascripts/dist/49ae34d4cc6b98c00c69.woff +0 -0
- dbgr_server/static/javascripts/dist/51aa168dd4ba03bd83f0.woff2 +0 -0
- dbgr_server/static/javascripts/dist/535bc89d4af715503b01.woff2 +0 -0
- dbgr_server/static/javascripts/dist/53b43867955fbecc811a.woff2 +0 -0
- dbgr_server/static/javascripts/dist/5e7382c63da0098d634a.ttf +0 -0
- dbgr_server/static/javascripts/dist/640f8692dc49a19f1541.woff +0 -0
- dbgr_server/static/javascripts/dist/79f21d796f266ce0ea70.woff +0 -0
- dbgr_server/static/javascripts/dist/7d8125ff7f707231fd89.woff2 +0 -0
- dbgr_server/static/javascripts/dist/7f7e9cd596438fea4b02.woff2 +0 -0
- dbgr_server/static/javascripts/dist/7f839a8652da29745ce4.woff2 +0 -0
- dbgr_server/static/javascripts/dist/83bebaf37c09c7e1c3ee.woff +0 -0
- dbgr_server/static/javascripts/dist/865f928cbabcc9f8f2b5.woff +0 -0
- dbgr_server/static/javascripts/dist/870c8c1486f76054301a.woff2 +0 -0
- dbgr_server/static/javascripts/dist/9216be4e13fe7dbe70ef.woff2 +0 -0
- dbgr_server/static/javascripts/dist/9360531f9bb817f917f0.woff +0 -0
- dbgr_server/static/javascripts/dist/969a44e1b6fc26105bd6.woff2 +0 -0
- dbgr_server/static/javascripts/dist/a45108d3b34af91f9113.woff +0 -0
- dbgr_server/static/javascripts/dist/b1d9d9904bfca8802a63.woff +0 -0
- dbgr_server/static/javascripts/dist/b39a11f9a6107e57a21f.woff2 +0 -0
- dbgr_server/static/javascripts/dist/bac8362e7a6ea60b6983.woff +0 -0
- dbgr_server/static/javascripts/dist/bbbf6951525a78fff340.woff +0 -0
- dbgr_server/static/javascripts/dist/bc628a95b5026af0df2c.woff2 +0 -0
- dbgr_server/static/javascripts/dist/bd5b7a13f2c52b531a2a.woff +0 -0
- dbgr_server/static/javascripts/dist/bf4b4e73015a3066da91.woff +0 -0
- dbgr_server/static/javascripts/dist/bfe6eaec56c141a0bd72.woff2 +0 -0
- dbgr_server/static/javascripts/dist/c18ee39fb002ad58b6dc.woff2 +0 -0
- dbgr_server/static/javascripts/dist/c1f17364fee75703a7ee.woff2 +0 -0
- dbgr_server/static/javascripts/dist/c20d916c1a1b094c1cec.woff +0 -0
- dbgr_server/static/javascripts/dist/c2aa4ab115bf9c6057cb.woff2 +0 -0
- dbgr_server/static/javascripts/dist/c5c3959c04004102ea46.woff2 +0 -0
- dbgr_server/static/javascripts/dist/c64e7e354c88e613c77c.woff2 +0 -0
- dbgr_server/static/javascripts/dist/ca100b2be6274105bb16.woff +0 -0
- dbgr_server/static/javascripts/dist/cb5ad999740e9d8a8bd1.woff2 +0 -0
- dbgr_server/static/javascripts/dist/cc9e42999888377183f8.woff2 +0 -0
- dbgr_server/static/javascripts/dist/cea99d3e3e13a3a599a0.woff +0 -0
- dbgr_server/static/javascripts/dist/cff684e59ffb052d72cb.woff2 +0 -0
- dbgr_server/static/javascripts/dist/d022bc70dc1bf7b3425d.woff2 +0 -0
- dbgr_server/static/javascripts/dist/d97850bb044fb5584361.woff2 +0 -0
- dbgr_server/static/javascripts/dist/da65dcd09cdc4863ece2.woff +0 -0
- dbgr_server/static/javascripts/dist/dbgr.js +1463 -0
- dbgr_server/static/javascripts/dist/eba647ae67ba7dc20f05.woff +0 -0
- dbgr_server/static/javascripts/dist/f5b74d7ffcdf85b9dd60.woff2 +0 -0
- dbgr_server/static/javascripts/dist/ff2c5c919a01e9ddda85.woff2 +0 -0
- dbgr_server/static/javascripts/dist/home.js +1037 -0
- dbgr_server/static/libs/material-design-lite/material.indigo-red.min.css +8 -0
- dbgr_server/templates/_layout.html +17 -0
- dbgr_server/templates/dbgr.html +138 -0
- dbgr_server/templates/home.html +115 -0
- dbgr_server/utils/__init__.py +0 -0
- dbgr_server/utils/state.py +249 -0
- dbgr_server/utils/streams.py +151 -0
- dbgr_server/utils/technical.py +132 -0
- dbgr_server/views.py +298 -0
- dbgr_server-1.1.0.dev1.data/scripts/dbgr.server.py +105 -0
- dbgr_server-1.1.0.dev1.dist-info/METADATA +534 -0
- dbgr_server-1.1.0.dev1.dist-info/RECORD +86 -0
- dbgr_server-1.1.0.dev1.dist-info/WHEEL +5 -0
- dbgr_server-1.1.0.dev1.dist-info/licenses/LICENSE +674 -0
- dbgr_server-1.1.0.dev1.dist-info/top_level.txt +2 -0
- tests/__init__.py +0 -0
- tests/test_app.py +84 -0
tests/test_app.py
ADDED
|
@@ -0,0 +1,84 @@
|
|
|
1
|
+
# pylint: disable=missing-function-docstring,redefined-outer-name
|
|
2
|
+
# pylint: disable=protected-access,no-member,missing-class-docstring
|
|
3
|
+
# Stdlib:
|
|
4
|
+
import asyncio
|
|
5
|
+
import json
|
|
6
|
+
|
|
7
|
+
# Thirdparty:
|
|
8
|
+
import pytest
|
|
9
|
+
|
|
10
|
+
# Firstparty:
|
|
11
|
+
import dbgr_server
|
|
12
|
+
from dbgr_server.app import init_app, init_versions
|
|
13
|
+
from dbgr_server.constants import THEME
|
|
14
|
+
from dbgr_server.utils.state import settings as settings_store
|
|
15
|
+
|
|
16
|
+
|
|
17
|
+
class MockResponse:
|
|
18
|
+
def __init__(self, text, status_code=200):
|
|
19
|
+
self._text = text
|
|
20
|
+
self.status_code = status_code
|
|
21
|
+
|
|
22
|
+
def json(self):
|
|
23
|
+
if isinstance(self._text, Exception):
|
|
24
|
+
raise self._text
|
|
25
|
+
return json.loads(self._text)
|
|
26
|
+
|
|
27
|
+
|
|
28
|
+
async def test_init_versions(mocker):
|
|
29
|
+
from fastapi import FastAPI # pylint: disable=import-outside-toplevel
|
|
30
|
+
app = FastAPI()
|
|
31
|
+
remote_version = "future_version"
|
|
32
|
+
|
|
33
|
+
mocker.patch(
|
|
34
|
+
"httpx.AsyncClient.get",
|
|
35
|
+
return_value=MockResponse(json.dumps({"info": {"version": remote_version}})),
|
|
36
|
+
)
|
|
37
|
+
await init_versions(app)
|
|
38
|
+
assert app.state.new_version == remote_version
|
|
39
|
+
assert app.state.pypi_version == remote_version
|
|
40
|
+
assert app.state.version == dbgr_server.__version__
|
|
41
|
+
|
|
42
|
+
mocker.patch(
|
|
43
|
+
"httpx.AsyncClient.get",
|
|
44
|
+
return_value=MockResponse(
|
|
45
|
+
json.dumps({"info": {"version": dbgr_server.__version__}})
|
|
46
|
+
),
|
|
47
|
+
)
|
|
48
|
+
await init_versions(app)
|
|
49
|
+
assert app.state.new_version is False
|
|
50
|
+
assert app.state.pypi_version == dbgr_server.__version__
|
|
51
|
+
assert app.state.version == dbgr_server.__version__
|
|
52
|
+
|
|
53
|
+
import httpx # pylint: disable=import-outside-toplevel
|
|
54
|
+
mocker.patch("httpx.AsyncClient.get", side_effect=httpx.TimeoutException(""))
|
|
55
|
+
await init_versions(app)
|
|
56
|
+
assert app.state.new_version is False
|
|
57
|
+
assert app.state.pypi_version == "pypi_error"
|
|
58
|
+
|
|
59
|
+
mocker.patch(
|
|
60
|
+
"httpx.AsyncClient.get",
|
|
61
|
+
return_value=MockResponse("badvalue"),
|
|
62
|
+
)
|
|
63
|
+
await init_versions(app)
|
|
64
|
+
assert app.state.new_version is False
|
|
65
|
+
assert app.state.pypi_version == "parsing_error"
|
|
66
|
+
|
|
67
|
+
mocker.patch("httpx.AsyncClient.get", side_effect=Exception())
|
|
68
|
+
await init_versions(app)
|
|
69
|
+
assert app.state.new_version is False
|
|
70
|
+
assert app.state.pypi_version == "unknown_error"
|
|
71
|
+
|
|
72
|
+
|
|
73
|
+
async def test_init_app():
|
|
74
|
+
test_settings = {
|
|
75
|
+
"debug": True,
|
|
76
|
+
"extra_search_path": True,
|
|
77
|
+
"more": True,
|
|
78
|
+
"show_filename": True,
|
|
79
|
+
}
|
|
80
|
+
app = await init_app(test_settings)
|
|
81
|
+
assert app.state.settings == settings_store
|
|
82
|
+
for key in test_settings:
|
|
83
|
+
assert test_settings[key] == getattr(app.state.settings, key)
|
|
84
|
+
assert app.state.theme == THEME
|