У меня есть три разных файла:
Файл класса lang.py, имеющий следующую функцию
from errors import StatusCodeError
class LangModel:
def __init__(self, localpath2fst, host="127.0.0.1", port="5000", logfile="log"):
...
def state_update(self):
"""
Initialize the language model (on the server side)
"""
try:
r = requests.post(
'http://' +
self.host +
':' +
self.port +
'/init')
except requests.ConnectionError:
raise ConnectionErr(self.host, self.port)
if not r.status_code == requests.codes.ok:
raise StatusCodeError(r.status_code)
Файл ошибок error.py:
class StatusCodeError(Exception):
def __init__(self, status_code):
self.dErrArgs = status_code
Exception.__init__(
self,
"Connection was not established and has status code {0}".format(self.dErrArgs))
и третий файл test.py
import unittest
from lang import LangModel
from errors import StatusCodeError
class TestPreLM(unittest.TestCase):
def test_incorrect_input(self):
"""
confirm the process provides
an error given an incorrect
input
"""
abs_path_fst = os.path.abspath("a valid path")
# local fst
localfst = abs_path_fst
# init LMWrapper
lmodel = LangModel(
localfst,
host='127.0.0.1',
port='5000',
logfile="lmwrap.log")
# try to get priors
with self.assertRaises(StatusCodeError):
lmodel.state_update(['3'])
Как ни странно, когда у меня есть тестовый код, найденный в файле класса, тест проходит успешно, но когда он обнаружен изолированно (в test.py), тест не пройден, и я не уверен, почему. Если ты сможешь облегчить мой путь, я буду счастлив;)