def test_construct(self): self.failUnlessRaises(TypeError, ax.AttrInfo) type_uri = 'a uri' ainfo = ax.AttrInfo(type_uri) self.failUnlessEqual(type_uri, ainfo.type_uri) self.failUnlessEqual(1, ainfo.count) self.failIf(ainfo.required) self.failUnless(ainfo.alias is None)
def test_getExtensionArgs_alias_if_available(self): attr = ax.AttrInfo( type_uri='type://of.transportation', alias='transport', ) self.msg.add(attr) self.failUnlessExtensionArgs({ 'type.' + attr.alias: attr.type_uri, 'if_available': attr.alias, })
def test_getExtensionArgs_alias_req(self): attr = ax.AttrInfo( type_uri='type://of.transportation', alias='transport', required=True, ) self.msg.add(attr) self.failUnlessExtensionArgs({ 'type.' + attr.alias: attr.type_uri, 'required': attr.alias, })
def test_add(self): uri = 'mud://puddle' # Not yet added: self.failIf(uri in self.msg) attr = ax.AttrInfo(uri) self.msg.add(attr) # Present after adding self.failUnless(uri in self.msg)
def test_getExtensionArgs_some_request(self): expected_args = { 'mode': 'fetch_response', 'type.' + self.alias_a: self.type_a, 'value.' + self.alias_a + '.1': self.value_a, 'count.' + self.alias_a: '1' } req = ax.FetchRequest() req.add(ax.AttrInfo(self.type_a, alias=self.alias_a)) msg = ax.FetchResponse(request=req) msg.addValue(self.type_a, self.value_a) self.failUnlessEqual(expected_args, msg.getExtensionArgs())
def test_getExtensionArgs_empty_request_some(self): uri = 'http://not.found/' alias = 'ext0' expected_args = { 'mode': 'fetch_response', 'type.%s' % (alias, ): uri, 'count.%s' % (alias, ): '0' } req = ax.FetchRequest() req.add(ax.AttrInfo(uri)) msg = ax.FetchResponse(request=req) self.failUnlessEqual(expected_args, msg.getExtensionArgs())
def test_getExtensionArgs_noAlias(self): attr = ax.AttrInfo(type_uri='type://of.transportation', ) self.msg.add(attr) ax_args = self.msg.getExtensionArgs() for k, v in ax_args.iteritems(): if v == attr.type_uri and k.startswith('type.'): alias = k[5:] break else: self.fail("Didn't find the type definition") self.failUnlessExtensionArgs({ 'type.' + alias: attr.type_uri, 'if_available': alias, })
def test_addTwice(self): uri = 'lightning://storm' attr = ax.AttrInfo(uri) self.msg.add(attr) self.failUnlessRaises(KeyError, self.msg.add, attr)