class RequestQueueTest(unittest.TestCase): """ Unit testing for the RequestQueue class. """ @classmethod def setUpClass(cls): """ Initialize the RequestQueueTest class. This is called before any tests are run. This is part of the unittest API. """ cls._DATA = TestData("data/StnData.xml") return def setUp(self): """ Set up the test fixture. This is called before each test is run so that they are isolated from any side effects. This is part of the unittest API. """ params = self._DATA.params result = self._DATA.result self._query = {"params": params, "result": result} self._request = StnDataRequest() self._request.location(sid="okc") self._request.dates("2011-12-31", "2012-01-01") self._request.add_element("mint", smry="min") self._request.add_element(1, smry="max") self._request.metadata("county", "name") # self._result = StnDataResult(self._query) return def test_execute(self): """ Test the execute method. """ queue = RequestQueue() queue.add(self._request) queue.add(self._request) queue.execute() for item in queue.results: self.assertDictEqual(self._query["result"], item["result"]) return def test_execute_callback(self): """ Test the execute method with a callback. """ queue = RequestQueue() queue.add(self._request, StnDataResult) queue.add(self._request, StnDataResult) queue.execute() result = StnDataResult(self._query) for item in queue.results: # self.assertDictEqual(result.meta, item.meta) self.assertDictEqual(result.data, item.data) # self.assertDictEqual(result.smry, item.smry) return def test_clear(self): queue = RequestQueue() queue.add(self._request) queue.execute() queue.clear() queue.execute() self.assertEqual(0, len(queue.results)) return