Использование Python 3.x. При выполнении теста для следующего кода я получаю ошибку - NameError: name 'TEST_VAR' is not defined
. Я прилагаю файл для тестирования, файл yaml, который читает код, и файл модульного теста.
FileToTest.py: https://pastebin.com/d9QQiVSD
from os import path
from typing import TextIO
from yaml import load as yload, SafeLoader
TEST_FILE = "test.yaml"
def retreiveFilePath(fpath, fname, write_mode=False) -> TextIO:
filePath = open("%(path)s/%(filename)s" % {
"path": fpath,
"filename": fname
},
"w" if write_mode else "r"
)
return filePath
def methodToTest(val1, val2) -> str:
return "%(base)s/%(name)s/%(version)s.jar" % {
"base": TEST_VAR["var1"]["var12"],
"name": val1,
"version": val2
}
def method1() -> TextIO:
try:
filePath = retreiveFilePath(path.dirname(__file__), TEST_FILE)
configReturn = yload(filePath.read())
return configReturn
except Exception as e:
print("Failure, ", e)
return None
if __name__ == '__main__':
try:
TEST_VAR = method1()
except Exception as err:
exit_code = 1
exit(exit_code)
yaml Файл:
var1:
var12: someVal12
var13: someVal13
var2:
var21: someVal21
контрольный пример: https://pastebin.com/crLymTHb
import unittest
from mock import patch
import FileToTest
class TestFile(unittest.TestCase):
def test__get_artifact_url(self):
val1 = "FName"
val2 = "LName"
resp = "someVal12/FName/LName.jar"
target_resp = FileToTest.methodToTest(val1, val2)
self.assertEqual(resp, target_resp)
if __name__ == '__main__':
unittest.main()
Как правильно решить эту ситуацию? Я пытался использовать патч, но не зря.