+ @mock.patch.object(store.dbs, "redis_connected")
+ @mock.patch.object(store.dbs, "redis")
+ def test_store_cryptoportfolio(self, redis, redis_connected):
+ store.Portfolio.liquidities = store.LockedVar({
+ "medium": {
+ datetime.datetime(2018,3,1): "medium_2018-03-01",
+ datetime.datetime(2018,3,8): "medium_2018-03-08",
+ },
+ "high": {
+ datetime.datetime(2018,3,1): "high_2018-03-01",
+ datetime.datetime(2018,3,8): "high_2018-03-08",
+ }
+ })
+ store.Portfolio.last_date = store.LockedVar(datetime.datetime(2018,3,8))
+
+ with self.subTest(redis_connected=False):
+ redis_connected.return_value = False
+ store.Portfolio.store_cryptoportfolio()
+ redis.set.assert_not_called()
+
+ with self.subTest(redis_connected=True):
+ redis_connected.return_value = True
+ store.Portfolio.store_cryptoportfolio()
+ redis.set.assert_has_calls([
+ mock.call("/cryptoportfolio/repartition/latest", '{"medium": "medium_2018-03-08", "high": "high_2018-03-08"}'),
+ mock.call("/cryptoportfolio/repartition/date", "2018-03-08"),
+ ])