def test_dimension_view_on_next_action(): listener = unittest.mock.Mock() view = forest.db.control.DimensionView("pressure", "pressures") view.add_subscriber(listener) view.on_next() expect = db.next_value("pressure", "pressures") listener.assert_called_once_with(expect)
def test_middleware_converts_next_value_to_set_value(self): store = redux.Store(db.reducer, initial_state={ "k": 2, "ks": [1, 2, 3] }) action = db.next_value("k", "ks") result = list(db.next_previous(store, action)) self.assertEqual(result, [db.set_value("k", 3)])
def test_next_value_action_creator(self): result = db.next_value("initial_time", "initial_times") expect = { "kind": "NEXT_VALUE", "payload": { "item_key": "initial_time", "items_key": "initial_times" } } self.assertEqual(expect, result)
def test_next_given_none_selects_latest_time(self): action = db.next_value("initial_time", "initial_times") state = dict(initial_times=self.initial_times) store = redux.Store(db.reducer, initial_state=state, middlewares=[db.next_previous]) store.dispatch(action) result = store.state expect = dict(initial_time="2019-01-04 00:00:00", initial_times=self.initial_times) self.assertEqual(expect, result)
def test_middleware_converts_next_value_to_set_value(self): log = db.Log() state = {"k": 2, "ks": [1, 2, 3]} store = redux.Store(db.reducer, initial_state=state, middlewares=[db.next_previous, log]) store.dispatch(db.next_value("k", "ks")) result = store.state expect = {"k": 3, "ks": [1, 2, 3]} self.assertEqual(expect, result) self.assertEqual(log.actions, [db.set_value("k", 3)])
def test_pressure_middleware_reverses_pressure_coordinate(self): pressures = [1000, 850, 500] state = {"pressure": 850, "pressures": pressures} store = redux.Store( db.reducer, initial_state=state, middlewares=[db.InverseCoordinate("pressure"), db.next_previous]) action = db.next_value("pressure", "pressures") store.dispatch(action) result = store.state expect = {"pressure": 500, "pressures": pressures} self.assertEqual(expect, result)
def test_reducer_next_given_time_moves_forward_in_time(self): initial_times = [ "2019-01-01 00:00:00", "2019-01-01 02:00:00", "2019-01-01 01:00:00" ] action = db.next_value("initial_time", "initial_times") state = { "initial_time": "2019-01-01 00:00:00", "initial_times": initial_times } store = redux.Store(db.reducer, initial_state=state, middlewares=[db.next_previous]) store.dispatch(action) result = store.state expect = { "initial_time": "2019-01-01 01:00:00", "initial_times": initial_times } self.assertEqual(expect, result)
def test_on_click_emits_action(self): listener = unittest.mock.Mock() self.view.subscribe(listener) self.view.on_next("pressure", "pressures")() expect = db.next_value("pressure", "pressures") listener.assert_called_once_with(expect)
def test_dimension_view_on_next(): listener = unittest.mock.Mock() view = forest.db.control.DimensionView("item", "items") view.add_subscriber(listener) view.on_next() listener.assert_called_once_with(db.next_value("item", "items"))