我正在为检查我的数据库中的值的方法编写单元测试。我写了以下内容:
# Runs SQL query to check if price exists for base date
# If it exists, set the base price to that value
# If it doesn't, set it to 100
def get_base_price(self, month):
sql = '''SELECT COALESCE(TimeSeriesValue, 100) as TimeSeriesValue
FROM [RAP].[dbo].[TimeSeriesPosition]
WHERE TimeSeriesTypeID = 12 AND
SecurityMasterID = 45889 AND
FundID = 7 AND
EffectiveDate = %s''' % month
with self.job.rap.connect() as conn:
data = conn.execute(sql).fetchone()
print(sql)
return data # Returns base price value
这是测试:
# test to grab a base price
def test_retrieving_base_price_if_month_exists(self):
base_price = self.parser.get_base_price('1990-12-31')
self.assertEqual(base_price, 108.692339086277)
注意:self.parser
是包含方法的导入类。
我在方法中打印了SQL查询,并且它正确执行。我猜测问题与我执行查询的方式有关。我无法理解为什么它会返回无。它应该返回一行,我稍后可以使用[0]
获取其值。
答案 0 :(得分:0)
SQL查询运行的日期没有引号:
Context
我必须添加三引号并将字符串变量用单引号括起来。这很有用。