У меня в классе есть следующий статический метод:
@staticmethod
def get_previous_month(date):
previous_month = date - relativedelta.relativedelta(months=1)
return previous_month
Ниже я использую его в методе класса.
def transform_last_price(self, data):
full_data = data. \
addfield('TimeSeriesValue'). \
convert('EffectiveDate', lambda x: date_converter(x))
# Break table to dict_data... Does other stuff...
# Calls static method:
base_month = get_previous_month(dict_data[0]['EffectiveDate'])
# Do more stuff...
# Transform mapped dict into table
lastPriceData = etl. \
fromdicts(dict_data). \
addfield('FundID', self.FUND_ID). \
addfield('TimeSeriesTypeID', 12). \
cutout('MTDReturn')
return lastPriceData
Я пытаюсь написатьмодульный тест, который проверяет, если некоторые даты были преобразованы в объекты даты.
def test_convert_date_strings_to_date_objects(self):
data = etl.fromdicts([{'EffectiveDate': '1990-08-31'}])
transformed_dates = self.parser.transform_last_price(data)
date = transformed_dates.values('EffectiveDate')[0]
self.assertIsInstance(date, datetime.date)
Однако я получаю следующую ошибку:
NameError: name 'get_previous_month' is not defined
Я предполагаю, что у теста нет доступа к статическому методу?Я не уверен, как переписать это.Я уже написал тест для get_previous_month
отдельно, и он работает, но я пишу больше интеграционного теста для transform_last_price