flagchecker flowchart:
***/
├ flagchecker/
│ ├ flagchecker/
│ │ ├ __init__.py
│ │ ├ main.py
│ │ └ dict.json
│ └ test/
│ └ test_main.py
├ pipfile
└ pipfile.lock
test_main.py:
import json
from flagchecker.flagchecker import main
def test_get_base_date():
myurl = "C:/Users/***/flagchecker/flagchecker/dict.json"
dict_json = json.load(open(myurl,"r"))
dict_json["config"]["candle_bar"] = "1day"
base_date, pre_date = BaseDate(dict_json).get_base_date()
assert base_date == "2021" and pre_date == "2020"
When I run pytest, an error occurs ... NameError:’BaseDate'is not defined The class "BaseData" in main.py cannot be found. It seems that The details of the error are as follows
======================= test session starts ========================
platform win32 -- Python 3.8.5, pytest-6.2.1, py-1.10.0, pluggy-0.13.1
rootdir: C:\Users\***\flagchecker\test
collected 1 item
test_main.py F [100%]
============================= FAILURES =============================
________________________ test_get_base_date ________________________
def test_get_base_date():
myurl = "C:/Users/***/flagchecker/flagchecker/dict.json"
dict_json = json.load(open(myurl,"r"))
dict_json["config"]["candle_bar"] = "1day"
base_date, pre_date = BaseDate(dict_json).get_base_date()
NameError: name'BaseDate' is not defined ← Here
test_main.py:8: NameError
===================== short test summary info ======================
FAILED test_main.py::test_get_base_date - NameError: name 'BaseDat...
======================== 1 failed in 2.83s =========================
It seems that I could not import it when I tried various things Modified as follows
import json
from flagchecker import main ← here
def test_get_base_date():
myurl = "C:/Users/***/flagchecker/flagchecker/dict.json"
dict_json = json.load(open(myurl,"r"))
dict_json["config"]["candle_bar"] = "1day"
base_date, pre_date = main.BaseDate(dict_json).get_base_date()
assert base_date == "2021" and pre_date == "2020"
With this, the NameError has been resolved, This time, ImportError occurs ...
======================= test session starts ========================
platform win32 -- Python 3.8.5, pytest-6.2.1, py-1.10.0, pluggy-0.13.1
rootdir: C:\Users\***\flagchecker\test
collected 0 items / 1 error
============================== ERRORS ==============================
__________________ ERROR collecting test_main.py ___________________
ImportError while importing test module
'C:\Users\***\flagchecker\test\test_main.py'.
Hint: make sure your test modules/packages have valid Python names.
Traceback:
..\..\appdata\local\programs\python\python38\lib\importlib\__init__.py:127: in
import_module
return _bootstrap._gcd_import(name[level:], package, level)
test_main.py:2: in <module>
from flagchecker import main
E ImportError: cannot import name 'main' from 'flagchecker'
(c:\users\***\appdata\local\programs\python\python38\lib\site-
packages\flagchecker\__init__.py)
===================== short test summary info ======================
ERROR test_main.py
!!!!!!!!!!!!!! Interrupted: 1 error during collection !!!!!!!!!!!!!!
========================= 1 error in 0.43s =========================
Apparently there is init.py! Because it seems like that Init.py was added to the test folder as follows. flagchecker flowchart:
***/
├ flagchecker/
│ ├ flagchecker/
│ │ ├ __init__.py
│ │ ├ main.py
│ │ └ dict.json
│ └ test/
│ ├ __init __.py ← here │ └ test_main.py ├ pipfile └ pipfile.lock Then run pytest again!
======================== test session starts ========================
platform win32 -- Python 3.8.5, pytest-6.2.1, py-1.10.0, pluggy-0.13.1
rootdir: C:\Users\***\flagchecker\test
collected 1 item
test_main.py . [100%]
========================= 1 passed in 0.09s =========================
The pytest has been completed successfully.