Пример #1
0
 def test_list_places_node_id_in_cache(self):
     user = factory.make_User()
     cache = {}
     handler = EventHandler(user, cache)
     node = factory.make_Node()
     handler.list({"node_id": node.id})
     self.assertEqual([node.id], cache["node_ids"])
Пример #2
0
 def test_on_listen_returns_None_if_event_node_id_not_in_cache(self):
     user = factory.make_User()
     handler = EventHandler(user, {})
     node = factory.make_Node()
     event = factory.make_Event(node=node)
     self.assertIsNone(
         handler.on_listen(sentinel.channel, "create", event.id))
Пример #3
0
 def test_clear_removes_node_id_from_cache(self):
     user = factory.make_User()
     handler = EventHandler(user, {})
     node = factory.make_Node()
     handler.cache["node_ids"].append(node.id)
     self.expectThat(handler.clear({"node_id": node.id}), Is(None))
     self.expectThat(handler.cache["node_ids"], Equals([]))
Пример #4
0
 def test_on_listen_returns_None_if_listen_returns_None(self):
     user = factory.make_User()
     handler = EventHandler(user, {})
     mock_listen = self.patch(handler, "listen")
     mock_listen.return_value = None
     self.assertIsNone(
         handler.on_listen(sentinel.channel, sentinel.action,
                           random.randint(1, 1000)))
Пример #5
0
 def test_on_listen_returns_None_if_obj_no_longer_exists(self):
     user = factory.make_User()
     handler = EventHandler(user, {})
     mock_listen = self.patch(handler, "listen")
     mock_listen.return_value = HandlerDoesNotExistError()
     self.assertIsNone(
         handler.on_listen(sentinel.channel, sentinel.action,
                           random.randint(1, 1000)))
Пример #6
0
 def test_on_listen_calls_listen_for_create(self):
     user = factory.make_User()
     handler = EventHandler(user, {})
     mock_listen = self.patch(handler, "listen")
     mock_listen.return_value = None
     pk = random.randint(1, 1000)
     handler.on_listen(sentinel.channel, "create", pk)
     self.assertThat(mock_listen,
                     MockCalledOnceWith(sentinel.channel, "create", pk))
Пример #7
0
 def test_list_default_max_days_of_30(self):
     user = factory.make_User()
     handler = EventHandler(user, {})
     node = factory.make_Node()
     events = [factory.make_Event(node=node) for _ in range(3)]
     # Event older than 30 days.
     self.make_event_in_the_past(node, 31)
     self.assertItemsEqual(self.dehydrate_events(events),
                           handler.list({"node_id": node.id}))
Пример #8
0
 def test_list_returns_newest_event_first(self):
     user = factory.make_User()
     handler = EventHandler(user, {})
     node = factory.make_Node()
     events = [factory.make_Event(node=node) for _ in range(3)]
     # Other events.
     for _ in range(3):
         factory.make_Event()
     self.assertEqual(self.dehydrate_events(reversed(events)),
                      handler.list({"node_id": node.id}))
Пример #9
0
 def test_list_only_returns_events_for_node(self):
     user = factory.make_User()
     handler = EventHandler(user, {})
     node = factory.make_Node()
     events = [factory.make_Event(node=node) for _ in range(3)]
     # Other events.
     for _ in range(3):
         factory.make_Event()
     self.assertItemsEqual(self.dehydrate_events(events),
                           handler.list({"node_id": node.id}))
Пример #10
0
 def test_on_listen_returns_handler_name_action_and_event(self):
     user = factory.make_User()
     handler = EventHandler(user, {})
     node = factory.make_Node()
     event = factory.make_Event(node=node)
     handler.cache["node_ids"].append(node.id)
     self.assertEqual((handler._meta.handler_name, "create",
                       self.dehydrate_event(event)),
                      handler.on_listen(sentinel.channel, "create",
                                        event.id))
Пример #11
0
 def test_on_listen_doesnt_call_listen_for_non_create(self):
     user = factory.make_User()
     handler = EventHandler(user, {})
     mock_listen = self.patch(handler, "listen")
     mock_listen.return_value = None
     pk = random.randint(1, 1000)
     action = factory.make_string()
     if action != "create":
         handler.on_listen(sentinel.channel, action, pk)
         self.assertThat(mock_listen, MockNotCalled())
Пример #12
0
 def test_list_limit(self):
     user = factory.make_User()
     handler = EventHandler(user, {})
     node = factory.make_Node()
     events = list(
         reversed([factory.make_Event(node=node) for _ in range(6)]))
     expected_output = self.dehydrate_events(events[:3])
     self.assertItemsEqual(expected_output,
                           handler.list({
                               "node_id": node.id,
                               "limit": 3
                           }))
Пример #13
0
 def test_list_uses_max_days(self):
     user = factory.make_User()
     handler = EventHandler(user, {})
     node = factory.make_Node()
     maxdays = random.randint(3, 50)
     events = [
         self.make_event_in_the_past(user, node, maxdays - 1)
         for _ in range(3)
         ]
     for _ in range(3):
         self.make_event_in_the_past(user, node, maxdays + 1)
     self.assertItemsEqual(
         self.dehydrate_events(events),
         handler.list({"node_id": node.id, "max_days": maxdays}))
Пример #14
0
 def test_list_start(self):
     user = factory.make_User()
     handler = EventHandler(user, {}, None)
     node = factory.make_Node()
     events = list(
         reversed(
             [factory.make_Event(user=user, node=node) for _ in range(6)]))
     expected_output = self.dehydrate_events(events[3:])
     self.assertItemsEqual(
         expected_output,
         handler.list({
             "node_id": node.id,
             "start": events[2].id
         }))
Пример #15
0
 def test_list_raises_error_if_node_doesnt_exist(self):
     user = factory.make_User()
     handler = EventHandler(user, {})
     node = factory.make_Node()
     node.delete()
     self.assertRaises(HandlerDoesNotExistError, handler.list,
                       {"node_id": node.id})
Пример #16
0
 def test_list_raises_error_if_missing_node_id(self):
     user = factory.make_User()
     handler = EventHandler(user, {})
     self.assertRaises(HandlerPKError, handler.list, {})