def test_default_word_converter(self): rmap = Map() rmap.add(Rule('ping <host>', endpoint='ping')) adapter = rmap.bind() self.assertEqual(adapter.match('ping foo'), ('ping', {'host': 'foo'})) self.assertRaises(NotFound, adapter.match, 'ping foo bar')
def test_route_filtered_by_sender_jid(self): rmap = Map() rmap.add(Rule('ping', from_jid='.*@xmpp.ru', endpoint='ping')) rmap.add(Rule('pong', from_jid='foo@bar', endpoint='pong')) adapter = rmap.bind() self.assertEqual( adapter.match('ping', from_jid='*****@*****.**'), ('ping', {})) self.assertEqual( adapter.match('ping', from_jid='*****@*****.**'), ('ping', {})) self.assertEqual( adapter.match('pong', from_jid='foo@bar'), ('pong', {})) self.assertEqual( adapter.match('pong', from_jid='*****@*****.**'), ('pong', {})) self.assertRaises(NotFound, adapter.match, 'ping', from_jid='foo@bar') self.assertRaises(NotFound, adapter.match, 'ping', from_jid='bar') self.assertRaises(NotFound, adapter.match, 'ping', from_jid='bar@foo') self.assertRaises(NotFound, adapter.match, 'pong', from_jid='*****@*****.**') self.assertRaises(NotFound, adapter.match, 'pong', from_jid='_foo@bar')
def test_aliases(self): def ping(): return 'pong' rmap = Map() rmap.add(Rule('ping', endpoint=ping)) rmap.add(Rule('pong', endpoint=ping)) rmap.update()
def test_string_converter(self): rmap = Map() rmap.add(Rule('ping <string:host>', endpoint='ping')) adapter = rmap.bind() self.assertEqual(adapter.match('ping foo'), ('ping', {'host': 'foo'})) self.assertEqual(adapter.match('ping foo bar'), ('ping', {'host': 'foo bar'}))
def test_string_converter(self): rmap = Map() rmap.add(Rule('ping <string:host>', endpoint='ping')) adapter = rmap.bind() self.assertEqual(adapter.match('ping foo'), ('ping', {'host': 'foo'})) self.assertEqual(adapter.match('ping foo bar'), ('ping', { 'host': 'foo bar' }))
def test_route_filtered_by_type(self): rmap = Map() rmap.add(Rule('ping', type='foo', endpoint='ping')) rmap.add(Rule('pong', type='bar', endpoint='pong')) adapter = rmap.bind() self.assertEqual(adapter.match('ping', type='foo'), ('ping', {})) self.assertEqual(adapter.match('pong', type='bar'), ('pong', {})) self.assertRaises(NotFound, adapter.match, 'pong', type='foo') self.assertRaises(NotFound, adapter.match, 'ping', type='bar')
def test_diff_of_strict_and_non_strict_rules(self): rmap = Map() rmap.add(Rule('ping <host>', endpoint='ping')) rmap.add(Rule('pong <host>', endpoint='pong', strict=False)) adapter = rmap.bind() self.assertEqual(adapter.match('ping example.com.'), ('ping', {'host': 'example.com.'})) self.assertRaises(NotFound, adapter.match, 'ping foo bar') self.assertEqual(adapter.match('pong example.com.'), ('pong', {'host': 'example.com.'})) self.assertEqual(adapter.match('pong foo tail'), ('pong', {'host': 'foo'}))
def test_diff_of_strict_and_non_strict_rules(self): rmap = Map() rmap.add(Rule('ping <host>', endpoint='ping')) rmap.add(Rule('pong <host>', endpoint='pong', strict=False)) adapter = rmap.bind() self.assertEqual(adapter.match('ping example.com.'), ('ping', { 'host': 'example.com.' })) self.assertRaises(NotFound, adapter.match, 'ping foo bar') self.assertEqual(adapter.match('pong example.com.'), ('pong', { 'host': 'example.com.' })) self.assertEqual(adapter.match('pong foo tail'), ('pong', { 'host': 'foo' }))
def test_route_filtered_by_sender_jid(self): rmap = Map() rmap.add(Rule('ping', from_jid='.*@xmpp.ru', endpoint='ping')) rmap.add(Rule('pong', from_jid='foo@bar', endpoint='pong')) adapter = rmap.bind() self.assertEqual(adapter.match('ping', from_jid='*****@*****.**'), ('ping', {})) self.assertEqual(adapter.match('ping', from_jid='*****@*****.**'), ('ping', {})) self.assertEqual(adapter.match('pong', from_jid='foo@bar'), ('pong', {})) self.assertEqual(adapter.match('pong', from_jid='*****@*****.**'), ('pong', {})) self.assertRaises(NotFound, adapter.match, 'ping', from_jid='foo@bar') self.assertRaises(NotFound, adapter.match, 'ping', from_jid='bar') self.assertRaises(NotFound, adapter.match, 'ping', from_jid='bar@foo') self.assertRaises(NotFound, adapter.match, 'pong', from_jid='*****@*****.**') self.assertRaises(NotFound, adapter.match, 'pong', from_jid='_foo@bar')