def test_collect(self, _datetime_cls, _perfmgr_coll_cls):
        mock_now = MagicMock()
        _datetime_cls.now.return_value = mock_now
        collector = StatsCollector(self._mock_db)
        mock_perfmgr_collector = MagicMock()
        _perfmgr_coll_cls.return_value = mock_perfmgr_collector
        mock_perfmgr_collector.collect.return_value = {
            "key1": [(1000000, 1), (1000020, 2)],
            "key2": [(1000000, 3), (1000020, 4)]}

        collector.configure_collectors()

        collector.collect()

        mock_perfmgr_collector.collect.assert_called_once_with(since=mock_now)
        calls = [call("key1", 1000000, 1),
                 call("key1", 1000020, 2),
                 call("key2", 1000000, 3),
                 call("key2", 1000020, 4)]

        self._mock_db.add.assert_has_calls(calls, any_order=True)
    def test_collect(self, _datetime_cls, _perfmgr_coll_cls):
        mock_now = MagicMock()
        _datetime_cls.now.return_value = mock_now
        collector = StatsCollector(self._mock_db)
        mock_perfmgr_collector = MagicMock()
        _perfmgr_coll_cls.return_value = mock_perfmgr_collector
        mock_perfmgr_collector.collect.return_value = {
            "key1": [(1000000, 1), (1000020, 2)],
            "key2": [(1000000, 3), (1000020, 4)]
        }

        collector.configure_collectors()

        collector.collect()

        mock_perfmgr_collector.collect.assert_called_once_with(since=mock_now)
        calls = [
            call("key1", 1000000, 1),
            call("key1", 1000020, 2),
            call("key2", 1000000, 3),
            call("key2", 1000020, 4)
        ]

        self._mock_db.add.assert_has_calls(calls, any_order=True)