Overview
| Comment: | setup and type map test, fix chdir() - which was redundant and causing more lookup errors in other tests |
|---|---|
| Downloads: | Tarball | ZIP archive | SQL archive |
| Timelines: | family | ancestors | descendants | both | trunk |
| Files: | files | file ages | folders |
| SHA3-256: |
44cb252c3b557dfbdee7b0e313c6adca |
| User & Date: | mario on 2022-10-26 13:59:45 |
| Other Links: | manifest | tags |
Context
|
2022-10-26
| ||
| 14:00 | add warning and missing pluginconf. references check-in: 85f6aa649a user: mario tags: trunk | |
| 13:59 | setup and type map test, fix chdir() - which was redundant and causing more lookup errors in other tests check-in: 44cb252c3b user: mario tags: trunk | |
| 13:59 | more pylint changes check-in: 7e6847fd5e user: mario tags: trunk | |
Changes
Added test/config_types.py version [051714d211].
> > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > | 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 38 |
# type: test
# title: type mapping
# description: test for common types in config:
# config:
# { name: s1, type: string, value: 1 }
# { name: s2, type: boolean, value: 1 }
# { name: s3, type: longstr, value: … }
# { name: s4, type: number, value: 1 }
# { name: s5, type: decimal, value: 1 }
# { name: s6, type: choice, value: 1 }
# version: 0.1
#
# Do all the settings!
import pytest
import pluginconf
pluginconf.config_opt_type_map.update({
"decimal": "int",
})
@pytest.fixture
def config():
return pluginconf.plugin_meta(fn=__file__)["config"]
@pytest.mark.parametrize("nam,typ", [
("s1", "str"),
("s2", "bool"),
("s3", "text"),
("s4", "int"),
("s5", "int"),
("s6", "select"),
])
def check_types(config, nam, typ):
for opt in config:
if opt["name"] == nam:
assert opt["type"] == typ
|
Added test/depends.py version [10d2104189].
> > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > | 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 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 |
# api: foobar
# type: test
# title: depends: checks
# description: basic dependency resolving
# version: 2.5
# depends: core >= 2.0, existing
#
# Simulates some plugins to check against
import pytest
import pluginconf
import pluginconf.depends
import logging
logging.basicConfig(level=logging.DEBUG)
@pytest.fixture
def check():
deps = pluginconf.depends.DependencyValidation(
add={"core": 2.555, "config": 2.0, "existing": 0.1},
core=["IMPLICIT"],
)
deps.api = ["python", "foobar"]
return deps
@pytest.fixture
def update_stream(): # …/repo.json/streamtuner2/contrib/*.py
return [
{
"$name": "new-plugin",
"$type": "x-py",
"$dist": "app/foobar",
"$file": "http://...",
"api": "foobar",
"version": "2.0",
"title": "new",
"config": "-",
"priority": "deprecated",
}
]
@pytest.fixture
def mod1():
return pluginconf.plugin_meta(filename=__file__)
def self_depends(check, mod1):
assert check.depends(mod1)
def self_api_match(check, update_stream):
print(check.have)
assert check.valid(update_stream[0])
|
Modified test/pyz.py from [0566039b1c] to [c33e5bdbba].
| ︙ | ︙ | |||
9 10 11 12 13 14 15 |
import sys
import os.path
import pytest
import pluginconf
sys.path.insert(0, f"{os.path.dirname(__file__)}/.pyz.pyz")
| | > > > > > > | 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 38 39 40 41 42 43 44 45 |
import sys
import os.path
import pytest
import pluginconf
sys.path.insert(0, f"{os.path.dirname(__file__)}/.pyz.pyz")
#os.chdir(os.path.dirname(__file__))
@pytest.fixture
def init():
print(pluginconf.module_base)
pluginconf.module_base = ["config"] # must be one of the .pyz-contained modules (should be a dir/submodule for real uses)
pluginconf.plugin_base = ["inner"] # relative, must declare __path__, can't be __main__.py
@pytest.fixture
def pmd():
return pluginconf.plugin_meta(module="inner")
def importy(init):
import inner as pyz_inner
#print(pyz_inner.__file__)
def module_list(init):
assert set(pluginconf.module_list()) & {'__main__', 'config', 'inner'}
def inner_props(pmd):
assert pmd["type"] == "pyz"
assert pmd["category"] == "complex"
assert pmd["title"] == "pyz module"
assert pmd["config"][0]["name"] == "relation"
assert pmd["state"] == "alpha"
#def tearDown():
# pass#pluginconf.plugin_base = [".", "test", os.path.dirname(__file__), "."]
# #pluginconf.module_base = "all_plugin_meta"
# sys.path.pop(0)
|
Added test/setup.py version [75184c3ebc].
> > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > | 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 |
# type: test
# title: setup()
# description: probe for prepared attributes
# version: 0.7
#
# distutils bad
import pytest
import pluginconf
import pluginconf.setup
import setuptools
@pytest.fixture
def pmd():
return pluginconf.plugin_meta(module="pluginconf")
attr = {}
def _record(**kwargs):
attr.update(kwargs)
def attributes(mocker, pmd):
stop = mocker.patch('setuptools.setup', _record)
pluginconf.setup.setup(
fn="pluginconf/__init__.py",
)
assert attr["classifiers"]
assert attr["project_urls"]
assert attr["packages"] == ['pluginconf', 'test']
assert attr["long_description_content_type"] == 'text/markdown'
assert attr["license"] == 'PD'
assert attr["keywords"] == 'config'
assert attr["long_description"].find("meta data") > 0
|