mirror of
https://github.com/kennethreitz/replit-py.git
synced 2026-06-05 23:10:18 +00:00
move coverage to dev deps, fix some tests (#14)
This commit is contained in:
@@ -1,5 +1,5 @@
|
||||
version: v1.0
|
||||
name: Python
|
||||
name: replit-py
|
||||
agent:
|
||||
machine:
|
||||
type: e1-standard-2
|
||||
@@ -23,5 +23,12 @@ blocks:
|
||||
- checkout --use-cache
|
||||
- python -m pip install --upgrade poetry
|
||||
- poetry install
|
||||
# - poetry run coverage run -m unittest src/replit/test_database.py
|
||||
# - poetry run coverage report -m
|
||||
- poetry run coverage run -m unittest
|
||||
- poetry run coverage report -m --include='src/*'
|
||||
- name: mypy
|
||||
commands:
|
||||
- sem-version python 3.8
|
||||
- checkout --use-cache
|
||||
- python -m pip install --upgrade poetry
|
||||
- poetry install
|
||||
- poetry run mypy src/replit || true
|
||||
|
||||
Generated
+49
-5
@@ -134,7 +134,7 @@ python-versions = ">=2.7, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.*, !=3.4.*"
|
||||
version = "0.4.3"
|
||||
|
||||
[[package]]
|
||||
category = "main"
|
||||
category = "dev"
|
||||
description = "Code coverage measurement for Python"
|
||||
name = "coverage"
|
||||
optional = false
|
||||
@@ -360,6 +360,30 @@ optional = false
|
||||
python-versions = ">=3.5"
|
||||
version = "4.7.6"
|
||||
|
||||
[[package]]
|
||||
category = "dev"
|
||||
description = "Optional static typing for Python"
|
||||
name = "mypy"
|
||||
optional = false
|
||||
python-versions = ">=3.5"
|
||||
version = "0.782"
|
||||
|
||||
[package.dependencies]
|
||||
mypy-extensions = ">=0.4.3,<0.5.0"
|
||||
typed-ast = ">=1.4.0,<1.5.0"
|
||||
typing-extensions = ">=3.7.4"
|
||||
|
||||
[package.extras]
|
||||
dmypy = ["psutil (>=4.0)"]
|
||||
|
||||
[[package]]
|
||||
category = "dev"
|
||||
description = "Experimental type system extensions for programs checked with the mypy typechecker."
|
||||
name = "mypy-extensions"
|
||||
optional = false
|
||||
python-versions = "*"
|
||||
version = "0.4.3"
|
||||
|
||||
[[package]]
|
||||
category = "dev"
|
||||
description = "Core utilities for Python packages"
|
||||
@@ -503,7 +527,7 @@ description = "Python documentation generator"
|
||||
name = "sphinx"
|
||||
optional = false
|
||||
python-versions = ">=3.5"
|
||||
version = "3.1.2"
|
||||
version = "3.2.1"
|
||||
|
||||
[package.dependencies]
|
||||
Jinja2 = ">=2.3"
|
||||
@@ -702,7 +726,7 @@ idna = ">=2.0"
|
||||
multidict = ">=4.0"
|
||||
|
||||
[metadata]
|
||||
content-hash = "9ceb6e910237c20a8cf4b40b1c12620752f1e9fe3f0417cba404e4ce2ef10752"
|
||||
content-hash = "daadad55ceee17a7be939d29cec58ee620ebf78878631e6070cb17a764568ce1"
|
||||
lock-version = "1.0"
|
||||
python-versions = "^3.8"
|
||||
|
||||
@@ -925,6 +949,26 @@ multidict = [
|
||||
{file = "multidict-4.7.6-cp38-cp38-win_amd64.whl", hash = "sha256:7388d2ef3c55a8ba80da62ecfafa06a1c097c18032a501ffd4cabbc52d7f2b19"},
|
||||
{file = "multidict-4.7.6.tar.gz", hash = "sha256:fbb77a75e529021e7c4a8d4e823d88ef4d23674a202be4f5addffc72cbb91430"},
|
||||
]
|
||||
mypy = [
|
||||
{file = "mypy-0.782-cp35-cp35m-macosx_10_6_x86_64.whl", hash = "sha256:2c6cde8aa3426c1682d35190b59b71f661237d74b053822ea3d748e2c9578a7c"},
|
||||
{file = "mypy-0.782-cp35-cp35m-manylinux1_x86_64.whl", hash = "sha256:9c7a9a7ceb2871ba4bac1cf7217a7dd9ccd44c27c2950edbc6dc08530f32ad4e"},
|
||||
{file = "mypy-0.782-cp35-cp35m-win_amd64.whl", hash = "sha256:c05b9e4fb1d8a41d41dec8786c94f3b95d3c5f528298d769eb8e73d293abc48d"},
|
||||
{file = "mypy-0.782-cp36-cp36m-macosx_10_6_x86_64.whl", hash = "sha256:6731603dfe0ce4352c555c6284c6db0dc935b685e9ce2e4cf220abe1e14386fd"},
|
||||
{file = "mypy-0.782-cp36-cp36m-manylinux1_x86_64.whl", hash = "sha256:f05644db6779387ccdb468cc47a44b4356fc2ffa9287135d05b70a98dc83b89a"},
|
||||
{file = "mypy-0.782-cp36-cp36m-win_amd64.whl", hash = "sha256:b7fbfabdbcc78c4f6fc4712544b9b0d6bf171069c6e0e3cb82440dd10ced3406"},
|
||||
{file = "mypy-0.782-cp37-cp37m-macosx_10_6_x86_64.whl", hash = "sha256:3fdda71c067d3ddfb21da4b80e2686b71e9e5c72cca65fa216d207a358827f86"},
|
||||
{file = "mypy-0.782-cp37-cp37m-manylinux1_x86_64.whl", hash = "sha256:d7df6eddb6054d21ca4d3c6249cae5578cb4602951fd2b6ee2f5510ffb098707"},
|
||||
{file = "mypy-0.782-cp37-cp37m-win_amd64.whl", hash = "sha256:a4a2cbcfc4cbf45cd126f531dedda8485671545b43107ded25ce952aac6fb308"},
|
||||
{file = "mypy-0.782-cp38-cp38-macosx_10_9_x86_64.whl", hash = "sha256:6bb93479caa6619d21d6e7160c552c1193f6952f0668cdda2f851156e85186fc"},
|
||||
{file = "mypy-0.782-cp38-cp38-manylinux1_x86_64.whl", hash = "sha256:81c7908b94239c4010e16642c9102bfc958ab14e36048fa77d0be3289dda76ea"},
|
||||
{file = "mypy-0.782-cp38-cp38-win_amd64.whl", hash = "sha256:5dd13ff1f2a97f94540fd37a49e5d255950ebcdf446fb597463a40d0df3fac8b"},
|
||||
{file = "mypy-0.782-py3-none-any.whl", hash = "sha256:e0b61738ab504e656d1fe4ff0c0601387a5489ca122d55390ade31f9ca0e252d"},
|
||||
{file = "mypy-0.782.tar.gz", hash = "sha256:eff7d4a85e9eea55afa34888dfeaccde99e7520b51f867ac28a48492c0b1130c"},
|
||||
]
|
||||
mypy-extensions = [
|
||||
{file = "mypy_extensions-0.4.3-py2.py3-none-any.whl", hash = "sha256:090fedd75945a69ae91ce1303b5824f428daf5a028d2f6ab8a299250a846f15d"},
|
||||
{file = "mypy_extensions-0.4.3.tar.gz", hash = "sha256:2d82818f5bb3e369420cb3c4060a7970edba416647068eb4c5343488a6c604a8"},
|
||||
]
|
||||
packaging = [
|
||||
{file = "packaging-20.4-py2.py3-none-any.whl", hash = "sha256:998416ba6962ae7fbd6596850b80e17859a5753ba17c32284f67bfff33784181"},
|
||||
{file = "packaging-20.4.tar.gz", hash = "sha256:4357f74f47b9c12db93624a82154e9b120fa8293699949152b22065d556079f8"},
|
||||
@@ -1014,8 +1058,8 @@ snowballstemmer = [
|
||||
{file = "snowballstemmer-2.0.0.tar.gz", hash = "sha256:df3bac3df4c2c01363f3dd2cfa78cce2840a79b9f1c2d2de9ce8d31683992f52"},
|
||||
]
|
||||
sphinx = [
|
||||
{file = "Sphinx-3.1.2-py3-none-any.whl", hash = "sha256:97dbf2e31fc5684bb805104b8ad34434ed70e6c588f6896991b2fdfd2bef8c00"},
|
||||
{file = "Sphinx-3.1.2.tar.gz", hash = "sha256:b9daeb9b39aa1ffefc2809b43604109825300300b987a24f45976c001ba1a8fd"},
|
||||
{file = "Sphinx-3.2.1-py3-none-any.whl", hash = "sha256:ce6fd7ff5b215af39e2fcd44d4a321f6694b4530b6f2b2109b64d120773faea0"},
|
||||
{file = "Sphinx-3.2.1.tar.gz", hash = "sha256:321d6d9b16fa381a5306e5a0b76cd48ffbc588e6340059a729c6fdd66087e0e8"},
|
||||
]
|
||||
sphinx-autodoc-typehints = [
|
||||
{file = "sphinx-autodoc-typehints-1.11.0.tar.gz", hash = "sha256:bbf0b203f1019b0f9843ee8eef0cff856dc04b341f6dbe1113e37f2ebf243e11"},
|
||||
|
||||
@@ -29,6 +29,8 @@ flake8-docstrings = "^1.5.0"
|
||||
sphinx = "^3.1.2"
|
||||
sphinx-autodoc-typehints = "^1.11.0"
|
||||
sphinx-rtd-theme = "^0.5.0"
|
||||
coverage = "^5.2.1"
|
||||
mypy = "^0.782"
|
||||
|
||||
[build-system]
|
||||
requires = ["poetry>=0.12"]
|
||||
|
||||
@@ -252,7 +252,7 @@ class AsyncReplitDb:
|
||||
Returns:
|
||||
Tuple[str]: The keys in the database.
|
||||
"""
|
||||
return tuple(await self.list(""))
|
||||
return await self.list("")
|
||||
|
||||
async def values(self) -> Tuple[str]:
|
||||
"""Get every value in the database.
|
||||
|
||||
@@ -19,6 +19,10 @@ class TestAsyncDatabase(unittest.IsolatedAsyncioTestCase):
|
||||
url = req.text
|
||||
self.db = AsyncReplitDb(url)
|
||||
|
||||
# nuke whatever is already here
|
||||
for k in await self.db.keys():
|
||||
await self.db.delete(k)
|
||||
|
||||
async def asyncTearDown(self) -> None:
|
||||
"""Nuke whatever the test added."""
|
||||
for k in await self.db.keys():
|
||||
@@ -46,6 +50,12 @@ class TestAsyncDatabase(unittest.IsolatedAsyncioTestCase):
|
||||
keys = await self.db.list(key)
|
||||
self.assertEqual(keys, (key,))
|
||||
|
||||
keys = await self.db.keys()
|
||||
self.assertEqual(keys, (key,))
|
||||
|
||||
# just to make sure...
|
||||
self.assertEqual(await self.db.keys(), await self.db.list(""))
|
||||
|
||||
await self.db.delete(key)
|
||||
with self.assertRaises(KeyError):
|
||||
await self.db.get(key)
|
||||
@@ -98,31 +108,24 @@ class TestDatabase(unittest.IsolatedAsyncioTestCase):
|
||||
url = req.text
|
||||
self.db = ReplitDb(url)
|
||||
|
||||
async def tearDown(self) -> None:
|
||||
# nuke whatever is already here
|
||||
for k in self.db.keys():
|
||||
del self.db[k]
|
||||
|
||||
def tearDown(self) -> None:
|
||||
"""Nuke whatever the test added."""
|
||||
for k in await self.db.keys():
|
||||
await self.db.delete(k)
|
||||
for k in self.db.keys():
|
||||
self.db.delete(k)
|
||||
|
||||
def test_get_set_delete(self) -> None:
|
||||
"""Test get, set, and delete."""
|
||||
with self.assertRaises(KeyError):
|
||||
self.db.get("key")
|
||||
self.db["key"]
|
||||
|
||||
self.db.set("key", "value")
|
||||
val = self.db.get("key")
|
||||
self.db["key"] = "value"
|
||||
val = self.db["key"]
|
||||
self.assertEqual(val, "value")
|
||||
|
||||
self.db.delete("key")
|
||||
|
||||
def test_dict(self) -> None:
|
||||
"""Test using the database as a dict."""
|
||||
del self.db["key"]
|
||||
with self.assertRaises(KeyError):
|
||||
val = self.db["hi"]
|
||||
|
||||
self.db["hi"] = "there"
|
||||
val = self.db.get("hi")
|
||||
self.assertEqual(val, "there")
|
||||
|
||||
del self.db["hi"]
|
||||
with self.assertRaises(KeyError):
|
||||
val = self.db["hi"]
|
||||
val = self.db["key"]
|
||||
Reference in New Issue
Block a user