def test_collect_request(self): req_collect = request.Collector( requests_impl=FakeRequestsSoftwareConfig) req_md = req_collect.collect() self.assertEqual(4, len(req_md)) self.assertEqual( SOFTWARE_CONFIG_DATA['deployments'], req_md[0][1]['deployments']) self.assertEqual( ('dep-name1', {'config1': 'value1'}), req_md[1]) self.assertEqual( ('dep-name2', {'config2': 'value2'}), req_md[2]) self.assertEqual( ('dep-name3', {'config3': 'value3'}), req_md[3])
def test_collect_request(self): req_collect = request.Collector(requests_impl=FakeRequests) self.assertIsNone(req_collect.last_modified) req_md = req_collect.collect() self.assertIsNotNone(req_collect.last_modified) self.assertThat(req_md, matchers.IsInstance(list)) self.assertEqual('request', req_md[0][0]) req_md = req_md[0][1] for k in ('int1', 'strfoo', 'map_ab'): self.assertIn(k, req_md) self.assertEqual(req_md[k], META_DATA[k]) self.assertEqual('', self.log.output)
def test_check_fetch_content(self): req_collect = request.Collector() now_secs = calendar.timegm(time.gmtime()) now_str = time.strftime("%a, %d %b %Y %H:%M:%S %Z", time.gmtime(now_secs)) future_secs = calendar.timegm(time.gmtime()) + 10 future_str = time.strftime("%a, %d %b %Y %H:%M:%S %Z", time.gmtime(future_secs)) past_secs = calendar.timegm(time.gmtime()) - 10 past_str = time.strftime("%a, %d %b %Y %H:%M:%S %Z", time.gmtime(past_secs)) self.assertIsNone(req_collect.last_modified) # first run always collects self.assertEqual( now_secs, req_collect.check_fetch_content({'last-modified': now_str})) # second run unmodified, does not collect req_collect.last_modified = now_secs self.assertRaises(exc.RequestMetadataNotAvailable, req_collect.check_fetch_content, {'last-modified': now_str}) # run with later date, collects self.assertEqual( future_secs, req_collect.check_fetch_content({'last-modified': future_str})) # run with earlier date, does not collect self.assertRaises(exc.RequestMetadataNotAvailable, req_collect.check_fetch_content, {'last-modified': past_str}) # run no last-modified header, collects self.assertIsNone(req_collect.check_fetch_content({}))
def test_collect_request_no_metadata_url(self): cfg.CONF.request.metadata_url = None req_collect = request.Collector(requests_impl=FakeRequests) self.assertRaises(exc.RequestMetadataNotConfigured, req_collect.collect) self.assertIn('No metadata_url configured', self.log.output)
def test_collect_request_fail(self): req_collect = request.Collector(requests_impl=FakeFailRequests) self.assertRaises(exc.RequestMetadataNotAvailable, req_collect.collect) self.assertIn('Forbidden', self.log.output)