def test_version_data_basics(self): examples = { 'keystone': V3_VERSION_LIST, 'cinder': CINDER_EXAMPLES, 'glance': GLANCE_EXAMPLES } for path, data in examples.items(): url = "%s%s" % (BASE_URL, path) mock = self.requests_mock.get(url, status_code=300, json=data) disc = discover.Discover(self.session, url) raw_data = disc.raw_version_data() clean_data = disc.version_data() for v in raw_data: for n in ('id', 'status', 'links'): msg = '%s missing from %s version data' % (n, path) self.assertThat( v, matchers.Annotate(msg, matchers.Contains(n))) for v in clean_data: for n in ('version', 'url', 'raw_status'): msg = '%s missing from %s version data' % (n, path) self.assertThat( v, matchers.Annotate(msg, matchers.Contains(n))) self.assertTrue(mock.called_once)
def match(self, matchee): checks = [] checks.append(matchers.IsInstance(FunctionCheck)) checks.append( matchers.Annotate( "name doesn't match", matchers.AfterPreprocessing(operator.attrgetter('name'), matchers.Equals(self.name)))) checks.append( matchers.Annotate( "info doesn't match", matchers.AfterPreprocessing(operator.attrgetter('info'), matchers.Equals(self.info)))) checks.append( matchers.Annotate( "blocking doesn't match", matchers.AfterPreprocessing(operator.attrgetter('blocking'), matchers.Equals(self.blocking)))) return matchers.MatchesAll(*checks).match(matchee)
def test_available_versions_basics(self): examples = {'keystone': V3_VERSION_LIST, 'cinder': jsonutils.dumps(CINDER_EXAMPLES), 'glance': jsonutils.dumps(GLANCE_EXAMPLES)} for path, text in six.iteritems(examples): url = "%s%s" % (BASE_URL, path) self.requests_mock.get(url, status_code=300, text=text) versions = discover.available_versions(url) for v in versions: for n in ('id', 'status', 'links'): msg = '%s missing from %s version data' % (n, path) self.assertThat(v, matchers.Annotate(msg, matchers.Contains(n)))