Exemplo n.º 1
0
    def test_with_two_filter(self, database):
        """
        Test filter with two filter
        - 2 first report return first dispatcher
        - 2 next report return first and second dispatcher
        - 2 next report return None
        """
        mongodb = MongoDB(URI, "test_filter", "test_filter1")
        mongodb.connect()
        hwpc_filter = Filter()
        hwpc_filter.filter(lambda msg:
                           True if "sensor" in msg.sensor else False,
                           1)
        hwpc_filter.filter(lambda msg:
                           True if "test1" in msg.sensor else False,
                           2)
        hwpc_filter.filter(lambda msg:
                           True if msg.sensor == "sensor_test2" else False,
                           3)

        mongodb_it = mongodb.iter(HWPCModel(), False)
        for _ in range(2):
            hwpc_report = next(mongodb_it)
            assert hwpc_filter.route(hwpc_report) == [1, 2]

        for _ in range(2):
            hwpc_report = next(mongodb_it)
            assert hwpc_filter.route(hwpc_report) == [1, 3]

        for _ in range(2):
            hwpc_report = next(mongodb_it)
            assert hwpc_filter.route(hwpc_report) == [1]
Exemplo n.º 2
0
 def test_without_filter(self):
     """ Test filter without any filter, raise an error """
     hwpc_filter = Filter()
     with pytest.raises(FilterUselessError) as pytest_wrapped:
         hwpc_filter.route(create_report_root({}))
     assert pytest_wrapped.type == FilterUselessError