diff --git a/.github/workflows/python-tests.yml b/.github/workflows/python-tests.yml index cef4d99..2e7a597 100644 --- a/.github/workflows/python-tests.yml +++ b/.github/workflows/python-tests.yml @@ -19,7 +19,7 @@ jobs: - name: Install dependencies run: | python -m pip install --upgrade pip - pip install pytest pytest-cov + pip install pytest pytest-cov pytest-env if [ -f requirements.txt ]; then pip install -r requirements.txt; fi - name: Test with pytest run: | diff --git a/configHandler.py b/configHandler.py index 0b59d3a..d17ecc8 100644 --- a/configHandler.py +++ b/configHandler.py @@ -1,26 +1,24 @@ import json import os -if ('RUNNING_TESTS' in os.environ): - config= {"config":{"link_cache":"ram","database":"","table":"","color":"","appname": "vxTwitter","repo": "https://github.com/dylanpdx/BetterTwitFix","url": "https://vxtwitter.com","combination_method": "local","gifConvertAPI":""}} -elif ('RUNNING_SERVERLESS' in os.environ and os.environ['RUNNING_SERVERLESS'] == '1'): # pragma: no cover +if ('RUNNING_SERVERLESS' in os.environ and os.environ['RUNNING_SERVERLESS'] == '1'): # pragma: no cover config = { "config":{ - "link_cache":os.environ["VXTWITTER_LINK_CACHE"], - "database":os.environ["VXTWITTER_DATABASE"], - "table":os.environ["VXTWITTER_CACHE_TABLE"], - "color":os.environ["VXTWITTER_COLOR"], - "appname": os.environ["VXTWITTER_APP_NAME"], - "repo": os.environ["VXTWITTER_REPO"], - "url": os.environ["VXTWITTER_URL"], - "combination_method": os.environ["VXTWITTER_COMBINATION_METHOD"], # can either be 'local' or a URL to a server handling requests in the same format - "gifConvertAPI":os.environ["VXTWITTER_GIF_CONVERT_API"], - "workaroundTokens":os.environ["VXTWITTER_WORKAROUND_TOKENS"], + "link_cache":os.getenv("VXTWITTER_LINK_CACHE","none"), + "database":os.getenv("VXTWITTER_DATABASE",""), + "table":os.getenv("VXTWITTER_CACHE_TABLE",""), + "color":os.getenv("VXTWITTER_COLOR",""), + "appname": os.getenv("VXTWITTER_APP_NAME","vxTwitter"), + "repo": os.getenv("VXTWITTER_REPO","https://github.com/dylanpdx/BetterTwitFix"), + "url": os.getenv("VXTWITTER_URL","https://vxtwitter.com"), + "combination_method": os.getenv("VXTWITTER_COMBINATION_METHOD","local"), # can either be 'local' or a URL to a server handling requests in the same format + "gifConvertAPI":os.getenv("VXTWITTER_GIF_CONVERT_API",""), + "workaroundTokens":os.getenv("VXTWITTER_WORKAROUND_TOKENS",None), "workaroundKeys":{ - "consumerKey":os.environ["VXTWITTER_WORKAROUND_CONSUMER_KEY"], - "consumerSecret":os.environ["VXTWITTER_WORKAROUND_CONSUMER_SECRET"], - "accessToken":os.environ["VXTWITTER_WORKAROUND_TOKEN"], - "accessTokenSecret":os.environ["VXTWITTER_WORKAROUND_TOKEN_SECRET"] + "consumerKey":os.getenv("VXTWITTER_WORKAROUND_CONSUMER_KEY"), + "consumerSecret":os.getenv("VXTWITTER_WORKAROUND_CONSUMER_SECRET"), + "accessToken":os.getenv("VXTWITTER_WORKAROUND_TOKEN"), + "accessTokenSecret":os.getenv("VXTWITTER_WORKAROUND_TOKEN_SECRET") } } } diff --git a/pytest.ini b/pytest.ini new file mode 100644 index 0000000..b0d7204 --- /dev/null +++ b/pytest.ini @@ -0,0 +1,8 @@ +[pytest] +env = + VXTWITTER_LINK_CACHE=ram + VXTWITTER_APP_NAME=vxTwitter + VXTWITTER_REPO=https://github.com/dylanpdx/BetterTwitFix + VXTWITTER_URL=https://vxtwitter.com + VXTWITTER_COMBINATION_METHOD=local + RUNNING_SERVERLESS=1 \ No newline at end of file diff --git a/test_vx.py b/test_vx.py index aeeb124..0d24a45 100644 --- a/test_vx.py +++ b/test_vx.py @@ -1,5 +1,4 @@ import os -os.environ["RUNNING_TESTS"]="1" import twitfix,twExtract import cache diff --git a/twExtract/__init__.py b/twExtract/__init__.py index 441ff5e..b675d9a 100644 --- a/twExtract/__init__.py +++ b/twExtract/__init__.py @@ -27,6 +27,8 @@ def extractStatus_fallback(url): if m is None: raise twExtractError.TwExtractError(400, "Extract error") twid = m.group(2) + if config["config"]["workaroundTokens"] == None: + raise twExtractError.TwExtractError(400, "Extract error (no tokens defined)") # get tweet tokens = config["config"]["workaroundTokens"].split(",") for authToken in tokens: