fix bug with recursive getter, remove pipenv, tox updates (#9)
* fix bug with recursive getter, remove pipenv, tox updates * build dep * build dep * ... * .
This commit is contained in:
parent
46b79c9ff1
commit
3e981c3f29
|
@ -5,13 +5,12 @@ python:
|
||||||
- "3.6"
|
- "3.6"
|
||||||
|
|
||||||
# install dependencies
|
# install dependencies
|
||||||
install: "make"
|
install: pip install tox-travis
|
||||||
|
|
||||||
# run tests and linting
|
# run tests and linting
|
||||||
script:
|
script:
|
||||||
- pip install pipenv --upgrade
|
- tox
|
||||||
- make init
|
- tox -e lint
|
||||||
- make ci
|
|
||||||
|
|
||||||
after_success:
|
after_success:
|
||||||
- coveralls
|
- coveralls
|
27
Makefile
27
Makefile
|
@ -2,34 +2,23 @@
|
||||||
# bison - python application configuration
|
# bison - python application configuration
|
||||||
#
|
#
|
||||||
|
|
||||||
HAS_PIPENV := $(shell which pipenv)
|
|
||||||
PKG_VERSION := $(shell cat bison/__version__.py | grep __version__ | awk '{print $$3}')
|
PKG_VERSION := $(shell cat bison/__version__.py | grep __version__ | awk '{print $$3}')
|
||||||
|
|
||||||
requires-pipenv:
|
|
||||||
ifndef HAS_PIPENV
|
|
||||||
@echo "pipenv required, but not found: run 'pip install pipenv --upgrade'"
|
|
||||||
exit 1
|
|
||||||
endif
|
|
||||||
|
|
||||||
.PHONY: init
|
|
||||||
init: requires-pipenv ## Initialize the project for development
|
|
||||||
pipenv install --dev --skip-lock
|
|
||||||
|
|
||||||
.PHONY: test
|
.PHONY: test
|
||||||
test: ## Run the bison unit tests
|
test: ## Run the bison unit tests
|
||||||
pipenv run py.test -vv
|
tox tests
|
||||||
|
|
||||||
.PHONY: ci
|
.PHONY: ci
|
||||||
ci: coverage lint ## Run the ci pipeline (test w/ coverage, lint)
|
ci: test lint ## Run the ci pipeline (test w/ coverage, lint)
|
||||||
|
|
||||||
|
.PHONY: deps ## Update pinned project dependencies (requirements.txt)
|
||||||
|
deps:
|
||||||
|
tox -e deps
|
||||||
|
|
||||||
.PHONY: lint
|
.PHONY: lint
|
||||||
lint: requires-pipenv ## Run static analysis / linting on bison
|
lint: ## Run static analysis / linting on bison
|
||||||
pipenv run flake8 --ignore=E501,E712 bison
|
tox -e lint
|
||||||
pipenv run isort bison tests -rc -c --diff
|
|
||||||
|
|
||||||
.PHONY: coverage
|
|
||||||
coverage: requires-pipenv ## Show the coverage report for unit tests
|
|
||||||
pipenv run py.test --cov-report term --cov-report html --cov=bison tests
|
|
||||||
|
|
||||||
.PHONY: publish
|
.PHONY: publish
|
||||||
publish: ## Publish bison to Pypi
|
publish: ## Publish bison to Pypi
|
||||||
|
|
19
Pipfile
19
Pipfile
|
@ -1,19 +0,0 @@
|
||||||
[[source]]
|
|
||||||
|
|
||||||
url = "https://pypi.python.org/simple"
|
|
||||||
verify_ssl = true
|
|
||||||
name = "pypi"
|
|
||||||
|
|
||||||
|
|
||||||
[dev-packages]
|
|
||||||
|
|
||||||
"pytest" = ">=2.8.0"
|
|
||||||
"pytest-cov" = "*"
|
|
||||||
"isort" = "*"
|
|
||||||
"flake8" = "*"
|
|
||||||
"tox" = "*"
|
|
||||||
"coveralls" = "*"
|
|
||||||
|
|
||||||
[packages]
|
|
||||||
|
|
||||||
"e1839a8" = {path = ".", editable = true}
|
|
|
@ -1,241 +0,0 @@
|
||||||
{
|
|
||||||
"_meta": {
|
|
||||||
"hash": {
|
|
||||||
"sha256": "169af82f00f401815defe78cfa60bbea2ab81a449ddf213d7a541cb35866565f"
|
|
||||||
},
|
|
||||||
"pipfile-spec": 6,
|
|
||||||
"requires": {},
|
|
||||||
"sources": [
|
|
||||||
{
|
|
||||||
"name": "pypi",
|
|
||||||
"url": "https://pypi.python.org/simple",
|
|
||||||
"verify_ssl": true
|
|
||||||
}
|
|
||||||
]
|
|
||||||
},
|
|
||||||
"default": {
|
|
||||||
"e1839a8": {
|
|
||||||
"editable": true,
|
|
||||||
"path": "."
|
|
||||||
},
|
|
||||||
"pyyaml": {
|
|
||||||
"hashes": [
|
|
||||||
"sha256:0c507b7f74b3d2dd4d1322ec8a94794927305ab4cebbe89cc47fe5e81541e6e8",
|
|
||||||
"sha256:16b20e970597e051997d90dc2cddc713a2876c47e3d92d59ee198700c5427736",
|
|
||||||
"sha256:3262c96a1ca437e7e4763e2843746588a965426550f3797a79fca9c6199c431f",
|
|
||||||
"sha256:326420cbb492172dec84b0f65c80942de6cedb5233c413dd824483989c000608",
|
|
||||||
"sha256:4474f8ea030b5127225b8894d626bb66c01cda098d47a2b0d3429b6700af9fd8",
|
|
||||||
"sha256:592766c6303207a20efc445587778322d7f73b161bd994f227adaa341ba212ab",
|
|
||||||
"sha256:5ac82e411044fb129bae5cfbeb3ba626acb2af31a8d17d175004b70862a741a7",
|
|
||||||
"sha256:5f84523c076ad14ff5e6c037fe1c89a7f73a3e04cf0377cb4d017014976433f3",
|
|
||||||
"sha256:827dc04b8fa7d07c44de11fabbc888e627fa8293b695e0f99cb544fdfa1bf0d1",
|
|
||||||
"sha256:b4c423ab23291d3945ac61346feeb9a0dc4184999ede5e7c43e1ffb975130ae6",
|
|
||||||
"sha256:bc6bced57f826ca7cb5125a10b23fd0f2fff3b7c4701d64c439a300ce665fff8",
|
|
||||||
"sha256:c01b880ec30b5a6e6aa67b09a2fe3fb30473008c85cd6a67359a1b15ed6d83a4",
|
|
||||||
"sha256:ca233c64c6e40eaa6c66ef97058cdc80e8d0157a443655baa1b2966e812807ca",
|
|
||||||
"sha256:e863072cdf4c72eebf179342c94e6989c67185842d9997960b3e69290b2fa269"
|
|
||||||
],
|
|
||||||
"version": "==3.12"
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"develop": {
|
|
||||||
"attrs": {
|
|
||||||
"hashes": [
|
|
||||||
"sha256:1c7960ccfd6a005cd9f7ba884e6316b5e430a3f1a6c37c5f87d8b43f83b54ec9",
|
|
||||||
"sha256:a17a9573a6f475c99b551c0e0a812707ddda1ec9653bed04c13841404ed6f450"
|
|
||||||
],
|
|
||||||
"version": "==17.4.0"
|
|
||||||
},
|
|
||||||
"certifi": {
|
|
||||||
"hashes": [
|
|
||||||
"sha256:14131608ad2fd56836d33a71ee60fa1c82bc9d2c8d98b7bdbc631fe1b3cd1296",
|
|
||||||
"sha256:edbc3f203427eef571f79a7692bb160a2b0f7ccaa31953e99bd17e307cf63f7d"
|
|
||||||
],
|
|
||||||
"version": "==2018.1.18"
|
|
||||||
},
|
|
||||||
"chardet": {
|
|
||||||
"hashes": [
|
|
||||||
"sha256:84ab92ed1c4d4f16916e05906b6b75a6c0fb5db821cc65e70cbd64a3e2a5eaae",
|
|
||||||
"sha256:fc323ffcaeaed0e0a02bf4d117757b98aed530d9ed4531e3e15460124c106691"
|
|
||||||
],
|
|
||||||
"version": "==3.0.4"
|
|
||||||
},
|
|
||||||
"colorama": {
|
|
||||||
"hashes": [
|
|
||||||
"sha256:463f8483208e921368c9f306094eb6f725c6ca42b0f97e313cb5d5512459feda",
|
|
||||||
"sha256:48eb22f4f8461b1df5734a074b57042430fb06e1d61bd1e11b078c0fe6d7a1f1"
|
|
||||||
],
|
|
||||||
"markers": "sys_platform == 'win32'",
|
|
||||||
"version": "==0.3.9"
|
|
||||||
},
|
|
||||||
"coverage": {
|
|
||||||
"hashes": [
|
|
||||||
"sha256:03481e81d558d30d230bc12999e3edffe392d244349a90f4ef9b88425fac74ba",
|
|
||||||
"sha256:0b136648de27201056c1869a6c0d4e23f464750fd9a9ba9750b8336a244429ed",
|
|
||||||
"sha256:104ab3934abaf5be871a583541e8829d6c19ce7bde2923b2751e0d3ca44db60a",
|
|
||||||
"sha256:15b111b6a0f46ee1a485414a52a7ad1d703bdf984e9ed3c288a4414d3871dcbd",
|
|
||||||
"sha256:198626739a79b09fa0a2f06e083ffd12eb55449b5f8bfdbeed1df4910b2ca640",
|
|
||||||
"sha256:1c383d2ef13ade2acc636556fd544dba6e14fa30755f26812f54300e401f98f2",
|
|
||||||
"sha256:28b2191e7283f4f3568962e373b47ef7f0392993bb6660d079c62bd50fe9d162",
|
|
||||||
"sha256:2eb564bbf7816a9d68dd3369a510be3327f1c618d2357fa6b1216994c2e3d508",
|
|
||||||
"sha256:337ded681dd2ef9ca04ef5d93cfc87e52e09db2594c296b4a0a3662cb1b41249",
|
|
||||||
"sha256:3a2184c6d797a125dca8367878d3b9a178b6fdd05fdc2d35d758c3006a1cd694",
|
|
||||||
"sha256:3c79a6f7b95751cdebcd9037e4d06f8d5a9b60e4ed0cd231342aa8ad7124882a",
|
|
||||||
"sha256:3d72c20bd105022d29b14a7d628462ebdc61de2f303322c0212a054352f3b287",
|
|
||||||
"sha256:3eb42bf89a6be7deb64116dd1cc4b08171734d721e7a7e57ad64cc4ef29ed2f1",
|
|
||||||
"sha256:4635a184d0bbe537aa185a34193898eee409332a8ccb27eea36f262566585000",
|
|
||||||
"sha256:56e448f051a201c5ebbaa86a5efd0ca90d327204d8b059ab25ad0f35fbfd79f1",
|
|
||||||
"sha256:5a13ea7911ff5e1796b6d5e4fbbf6952381a611209b736d48e675c2756f3f74e",
|
|
||||||
"sha256:69bf008a06b76619d3c3f3b1983f5145c75a305a0fea513aca094cae5c40a8f5",
|
|
||||||
"sha256:6bc583dc18d5979dc0f6cec26a8603129de0304d5ae1f17e57a12834e7235062",
|
|
||||||
"sha256:701cd6093d63e6b8ad7009d8a92425428bc4d6e7ab8d75efbb665c806c1d79ba",
|
|
||||||
"sha256:7608a3dd5d73cb06c531b8925e0ef8d3de31fed2544a7de6c63960a1e73ea4bc",
|
|
||||||
"sha256:76ecd006d1d8f739430ec50cc872889af1f9c1b6b8f48e29941814b09b0fd3cc",
|
|
||||||
"sha256:7aa36d2b844a3e4a4b356708d79fd2c260281a7390d678a10b91ca595ddc9e99",
|
|
||||||
"sha256:7d3f553904b0c5c016d1dad058a7554c7ac4c91a789fca496e7d8347ad040653",
|
|
||||||
"sha256:7e1fe19bd6dce69d9fd159d8e4a80a8f52101380d5d3a4d374b6d3eae0e5de9c",
|
|
||||||
"sha256:8c3cb8c35ec4d9506979b4cf90ee9918bc2e49f84189d9bf5c36c0c1119c6558",
|
|
||||||
"sha256:9d6dd10d49e01571bf6e147d3b505141ffc093a06756c60b053a859cb2128b1f",
|
|
||||||
"sha256:9e112fcbe0148a6fa4f0a02e8d58e94470fc6cb82a5481618fea901699bf34c4",
|
|
||||||
"sha256:ac4fef68da01116a5c117eba4dd46f2e06847a497de5ed1d64bb99a5fda1ef91",
|
|
||||||
"sha256:b8815995e050764c8610dbc82641807d196927c3dbed207f0a079833ffcf588d",
|
|
||||||
"sha256:be6cfcd8053d13f5f5eeb284aa8a814220c3da1b0078fa859011c7fffd86dab9",
|
|
||||||
"sha256:c1bb572fab8208c400adaf06a8133ac0712179a334c09224fb11393e920abcdd",
|
|
||||||
"sha256:de4418dadaa1c01d497e539210cb6baa015965526ff5afc078c57ca69160108d",
|
|
||||||
"sha256:e05cb4d9aad6233d67e0541caa7e511fa4047ed7750ec2510d466e806e0255d6",
|
|
||||||
"sha256:e4d96c07229f58cb686120f168276e434660e4358cc9cf3b0464210b04913e77",
|
|
||||||
"sha256:f3f501f345f24383c0000395b26b726e46758b71393267aeae0bd36f8b3ade80",
|
|
||||||
"sha256:f8a923a85cb099422ad5a2e345fe877bbc89a8a8b23235824a93488150e45f6e"
|
|
||||||
],
|
|
||||||
"version": "==4.5.1"
|
|
||||||
},
|
|
||||||
"coveralls": {
|
|
||||||
"hashes": [
|
|
||||||
"sha256:32569a43c9dbc13fa8199247580a4ab182ef439f51f65bb7f8316d377a1340e8",
|
|
||||||
"sha256:664794748d2e5673e347ec476159a9d87f43e0d2d44950e98ed0e27b98da8346"
|
|
||||||
],
|
|
||||||
"version": "==1.3.0"
|
|
||||||
},
|
|
||||||
"docopt": {
|
|
||||||
"hashes": [
|
|
||||||
"sha256:49b3a825280bd66b3aa83585ef59c4a8c82f2c8a522dbe754a8bc8d08c85c491"
|
|
||||||
],
|
|
||||||
"version": "==0.6.2"
|
|
||||||
},
|
|
||||||
"flake8": {
|
|
||||||
"hashes": [
|
|
||||||
"sha256:7253265f7abd8b313e3892944044a365e3f4ac3fcdcfb4298f55ee9ddf188ba0",
|
|
||||||
"sha256:c7841163e2b576d435799169b78703ad6ac1bbb0f199994fc05f700b2a90ea37"
|
|
||||||
],
|
|
||||||
"version": "==3.5.0"
|
|
||||||
},
|
|
||||||
"funcsigs": {
|
|
||||||
"hashes": [
|
|
||||||
"sha256:330cc27ccbf7f1e992e69fef78261dc7c6569012cf397db8d3de0234e6c937ca",
|
|
||||||
"sha256:a7bb0f2cf3a3fd1ab2732cb49eba4252c2af4240442415b4abce3b87022a8f50"
|
|
||||||
],
|
|
||||||
"markers": "python_version < '3.0'",
|
|
||||||
"version": "==1.0.2"
|
|
||||||
},
|
|
||||||
"idna": {
|
|
||||||
"hashes": [
|
|
||||||
"sha256:2c6a5de3089009e3da7c5dde64a141dbc8551d5b7f6cf4ed7c2568d0cc520a8f",
|
|
||||||
"sha256:8c7309c718f94b3a625cb648ace320157ad16ff131ae0af362c9f21b80ef6ec4"
|
|
||||||
],
|
|
||||||
"version": "==2.6"
|
|
||||||
},
|
|
||||||
"isort": {
|
|
||||||
"hashes": [
|
|
||||||
"sha256:1153601da39a25b14ddc54955dbbacbb6b2d19135386699e2ad58517953b34af",
|
|
||||||
"sha256:b9c40e9750f3d77e6e4d441d8b0266cf555e7cdabdcff33c4fd06366ca761ef8",
|
|
||||||
"sha256:ec9ef8f4a9bc6f71eec99e1806bfa2de401650d996c59330782b89a5555c1497"
|
|
||||||
],
|
|
||||||
"version": "==4.3.4"
|
|
||||||
},
|
|
||||||
"mccabe": {
|
|
||||||
"hashes": [
|
|
||||||
"sha256:ab8a6258860da4b6677da4bd2fe5dc2c659cff31b3ee4f7f5d64e79735b80d42",
|
|
||||||
"sha256:dd8d182285a0fe56bace7f45b5e7d1a6ebcbf524e8f3bd87eb0f125271b8831f"
|
|
||||||
],
|
|
||||||
"version": "==0.6.1"
|
|
||||||
},
|
|
||||||
"pluggy": {
|
|
||||||
"hashes": [
|
|
||||||
"sha256:7f8ae7f5bdf75671a718d2daf0a64b7885f74510bcd98b1a0bb420eb9a9d0cff"
|
|
||||||
],
|
|
||||||
"version": "==0.6.0"
|
|
||||||
},
|
|
||||||
"py": {
|
|
||||||
"hashes": [
|
|
||||||
"sha256:8cca5c229d225f8c1e3085be4fcf306090b00850fefad892f9d96c7b6e2f310f",
|
|
||||||
"sha256:ca18943e28235417756316bfada6cd96b23ce60dd532642690dcfdaba988a76d"
|
|
||||||
],
|
|
||||||
"version": "==1.5.2"
|
|
||||||
},
|
|
||||||
"pycodestyle": {
|
|
||||||
"hashes": [
|
|
||||||
"sha256:682256a5b318149ca0d2a9185d365d8864a768a28db66a84a2ea946bcc426766",
|
|
||||||
"sha256:6c4245ade1edfad79c3446fadfc96b0de2759662dc29d07d80a6f27ad1ca6ba9"
|
|
||||||
],
|
|
||||||
"version": "==2.3.1"
|
|
||||||
},
|
|
||||||
"pyflakes": {
|
|
||||||
"hashes": [
|
|
||||||
"sha256:08bd6a50edf8cffa9fa09a463063c425ecaaf10d1eb0335a7e8b1401aef89e6f",
|
|
||||||
"sha256:8d616a382f243dbf19b54743f280b80198be0bca3a5396f1d2e1fca6223e8805"
|
|
||||||
],
|
|
||||||
"version": "==1.6.0"
|
|
||||||
},
|
|
||||||
"pytest": {
|
|
||||||
"hashes": [
|
|
||||||
"sha256:062027955bccbc04d2fcd5d79690947e018ba31abe4c90b2c6721abec734261b",
|
|
||||||
"sha256:117bad36c1a787e1a8a659df35de53ba05f9f3398fb9e4ac17e80ad5903eb8c5"
|
|
||||||
],
|
|
||||||
"version": "==3.4.2"
|
|
||||||
},
|
|
||||||
"pytest-cov": {
|
|
||||||
"hashes": [
|
|
||||||
"sha256:03aa752cf11db41d281ea1d807d954c4eda35cfa1b21d6971966cc041bbf6e2d",
|
|
||||||
"sha256:890fe5565400902b0c78b5357004aab1c814115894f4f21370e2433256a3eeec"
|
|
||||||
],
|
|
||||||
"version": "==2.5.1"
|
|
||||||
},
|
|
||||||
"requests": {
|
|
||||||
"hashes": [
|
|
||||||
"sha256:6a1b267aa90cac58ac3a765d067950e7dbbf75b1da07e895d1f594193a40a38b",
|
|
||||||
"sha256:9c443e7324ba5b85070c4a818ade28bfabedf16ea10206da1132edaa6dda237e"
|
|
||||||
],
|
|
||||||
"version": "==2.18.4"
|
|
||||||
},
|
|
||||||
"six": {
|
|
||||||
"hashes": [
|
|
||||||
"sha256:70e8a77beed4562e7f14fe23a786b54f6296e34344c23bc42f07b15018ff98e9",
|
|
||||||
"sha256:832dc0e10feb1aa2c68dcc57dbb658f1c7e65b9b61af69048abc87a2db00a0eb"
|
|
||||||
],
|
|
||||||
"version": "==1.11.0"
|
|
||||||
},
|
|
||||||
"tox": {
|
|
||||||
"hashes": [
|
|
||||||
"sha256:752f5ec561c6c08c5ecb167d3b20f4f4ffc158c0ab78855701a75f5cef05f4b8",
|
|
||||||
"sha256:8af30fd835a11f3ff8e95176ccba5a4e60779df4d96a9dfefa1a1704af263225"
|
|
||||||
],
|
|
||||||
"version": "==2.9.1"
|
|
||||||
},
|
|
||||||
"urllib3": {
|
|
||||||
"hashes": [
|
|
||||||
"sha256:06330f386d6e4b195fbfc736b297f58c5a892e4440e54d294d7004e3a9bbea1b",
|
|
||||||
"sha256:cc44da8e1145637334317feebd728bd869a35285b93cbb4cca2577da7e62db4f"
|
|
||||||
],
|
|
||||||
"markers": "python_version < '3'",
|
|
||||||
"version": "==1.22"
|
|
||||||
},
|
|
||||||
"virtualenv": {
|
|
||||||
"hashes": [
|
|
||||||
"sha256:02f8102c2436bb03b3ee6dede1919d1dac8a427541652e5ec95171ec8adbc93a",
|
|
||||||
"sha256:39d88b533b422825d644087a21e78c45cf5af0ef7a99a1fc9fbb7b481e5c85b0"
|
|
||||||
],
|
|
||||||
"markers": "python_version != '3.2'",
|
|
||||||
"version": "==15.1.0"
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
|
@ -7,10 +7,9 @@ A Python application configuration library.
|
||||||
"""
|
"""
|
||||||
# flake8: noqa
|
# flake8: noqa
|
||||||
|
|
||||||
from .__version__ import __author__, __author_email__, __copyright__
|
from .__version__ import (__author__, __author_email__, __copyright__,
|
||||||
from .__version__ import __description__, __license__, __url__
|
__description__, __license__, __title__, __url__,
|
||||||
from .__version__ import __title__, __version__
|
__version__)
|
||||||
|
|
||||||
from .bison import Bison
|
from .bison import Bison
|
||||||
from .scheme import DictOption, ListOption, Option, Scheme
|
from .scheme import DictOption, ListOption, Option, Scheme
|
||||||
from .utils import DotDict
|
from .utils import DotDict
|
||||||
|
|
|
@ -3,7 +3,7 @@
|
||||||
__title__ = 'bison'
|
__title__ = 'bison'
|
||||||
__description__ = 'Python application configuration'
|
__description__ = 'Python application configuration'
|
||||||
__url__ = 'https://github.com/edaniszewski/bison'
|
__url__ = 'https://github.com/edaniszewski/bison'
|
||||||
__version__ = '0.0.6'
|
__version__ = '0.1.0'
|
||||||
__author__ = 'Erick Daniszewski'
|
__author__ = 'Erick Daniszewski'
|
||||||
__author_email__ = 'edaniszewski@gmail.com'
|
__author_email__ = 'edaniszewski@gmail.com'
|
||||||
__license__ = 'MIT'
|
__license__ = 'MIT'
|
||||||
|
|
|
@ -123,12 +123,12 @@ class DotDict(dict):
|
||||||
# DotDicts.
|
# DotDicts.
|
||||||
first, remainder = key.split('.', 1)
|
first, remainder = key.split('.', 1)
|
||||||
if first in self:
|
if first in self:
|
||||||
value = super(DotDict, self).get(first)
|
value = super(DotDict, self).get(first, default)
|
||||||
|
|
||||||
# if the value for the key at this level is a dictionary,
|
# if the value for the key at this level is a dictionary,
|
||||||
# then pass the remainder to that DotDict.
|
# then pass the remainder to that DotDict.
|
||||||
if isinstance(value, (dict, DotDict)):
|
if isinstance(value, (dict, DotDict)):
|
||||||
return DotDict(value).get(remainder)
|
return DotDict(value).get(remainder, default)
|
||||||
|
|
||||||
# TODO: support lists
|
# TODO: support lists
|
||||||
|
|
||||||
|
|
|
@ -0,0 +1,7 @@
|
||||||
|
#
|
||||||
|
# This file is autogenerated by pip-compile
|
||||||
|
# To update, run:
|
||||||
|
#
|
||||||
|
# pip-compile --output-file requirements.txt setup.py
|
||||||
|
#
|
||||||
|
pyyaml==3.13
|
|
@ -1,5 +1,10 @@
|
||||||
[bdist_wheel]
|
[bdist_wheel]
|
||||||
universal = 1
|
universal = 1
|
||||||
|
|
||||||
|
[isort]
|
||||||
|
not_skip = __init__.py
|
||||||
|
default_section = THIRDPARTY
|
||||||
|
known_first_party = bison,tests
|
||||||
|
|
||||||
[metadata]
|
[metadata]
|
||||||
license_file = LICENSE
|
license_file = LICENSE
|
|
@ -62,6 +62,25 @@ class TestBison:
|
||||||
value = b.get(key)
|
value = b.get(key)
|
||||||
assert value == expected
|
assert value == expected
|
||||||
|
|
||||||
|
@pytest.mark.parametrize(
|
||||||
|
'key,default,expected,config', [
|
||||||
|
('foo', 7, 7, None),
|
||||||
|
('foo', None, None, bison.DotDict()),
|
||||||
|
('foo', 'bar', 'bar', bison.DotDict()),
|
||||||
|
('foo', 'bar', None, bison.DotDict({'foo': None})),
|
||||||
|
('foo', 'bar', 'test', bison.DotDict({'foo': 'test'})),
|
||||||
|
('foo.bar', 7, 'baz', bison.DotDict({'foo': {'bar': 'baz'}})),
|
||||||
|
('foo.bar', 7, 7, bison.DotDict({'foo': {'something': 'else'}})),
|
||||||
|
]
|
||||||
|
)
|
||||||
|
def test_get_with_defaults(self, key, default, expected, config):
|
||||||
|
"""Get config values from Bison, using defaults if the key is not set."""
|
||||||
|
b = bison.Bison()
|
||||||
|
b._full_config = config # for the test, set the config manually
|
||||||
|
|
||||||
|
value = b.get(key, default=default)
|
||||||
|
assert value == expected
|
||||||
|
|
||||||
@pytest.mark.parametrize(
|
@pytest.mark.parametrize(
|
||||||
'key,value', [
|
'key,value', [
|
||||||
('foo', 'bar'),
|
('foo', 'bar'),
|
||||||
|
|
32
tox.ini
32
tox.ini
|
@ -1,9 +1,35 @@
|
||||||
[tox]
|
[tox]
|
||||||
testenv = py34,py35,py36
|
envlist = py{34,35,36}
|
||||||
|
minversion=3.4.0
|
||||||
|
skipsdist=True
|
||||||
|
skip_missing_interpreters=True
|
||||||
|
|
||||||
[testenv]
|
[testenv]
|
||||||
|
basepython=
|
||||||
|
py34: python3.4
|
||||||
|
py35: python3.5
|
||||||
|
py36: python3.6
|
||||||
deps=
|
deps=
|
||||||
pytest
|
pytest
|
||||||
commands =
|
pytest-cov
|
||||||
|
commands=
|
||||||
pip install -e .
|
pip install -e .
|
||||||
py.test tests
|
py.test \
|
||||||
|
--cov-report term \
|
||||||
|
--cov-report html \
|
||||||
|
--cov=bison \
|
||||||
|
{posargs}
|
||||||
|
|
||||||
|
[testenv:deps]
|
||||||
|
deps=
|
||||||
|
pip-tools
|
||||||
|
commands=
|
||||||
|
pip-compile --output-file requirements.txt setup.py
|
||||||
|
|
||||||
|
[testenv:lint]
|
||||||
|
deps=
|
||||||
|
isort
|
||||||
|
flake8
|
||||||
|
commands=
|
||||||
|
flake8 --ignore=E501,E712 bison
|
||||||
|
isort bison tests -rc -c --diff
|
||||||
|
|
Loading…
Reference in New Issue