def test(self): m = zulip.ZulipMessage( zulip.Zulip(context.Context()), { 'timestamp': 0.0, 'id': 0, 'content': 'foo', 'sender_email': '*****@*****.**', 'type': 'stream', 'display_recipient': 'black-magic', 'subject': 'television', 'message': 'foo', 'receiveTime': 0.0, 'sender': '*****@*****.**', 'class': 'MESSAGE', 'instance': 'white-magic', 'recipient': '', 'opcode': 'stark', 'signature': 'Tim The Beaver', 'time': 0.0, }) os.environ['TZ'] = 'GMT' self.assertEqual(str(m), '00:00 zulip; [email protected]\nfoo') self.assertEqual( repr(m), '<ZulipMessage 0.0 <ZulipAddress zulip [email protected]> 3 chars>')
def test_ensure_directory(self): HOME = '/afs/user/foo' DIR = os.path.join(HOME, '.snipe') c = context.Context(home=HOME) with patch('os.path.isdir') as isdir: isdir.return_value = True c.ensure_directory() # doesn't raise with patch('os.path.isdir') as isdir, \ patch('os.mkdir') as mkdir, \ patch('os.chmod') as chmod, \ patch('os.path.realpath') as realpath, \ patch('subprocess.Popen') as Popen: isdir.return_value = False realpath.return_value = DIR pipe = Mock() pipe.returncode = 1 pipe.communicate.return_value = ['foo'] Popen.return_value = pipe with self.assertLogs() as log: c.ensure_directory() self.assertEqual( f'ERROR:Snipe:fs sa {DIR} system:anyuser none' ' system:authuser none (=1): foo', log.output[0]) isdir.assert_called_with(DIR) mkdir.assert_called_with(DIR) chmod.assert_called_with(DIR, 0o700) pipe.returncode = 0 with self.assertLogs(level='DEBUG') as log: c.ensure_directory() self.assertEqual( f'DEBUG:Snipe:fs sa {DIR} system:anyuser none' ' system:authuser none: foo', log.output[0])
def test(self): f = MockPromise() m = roost.RoostRegistrationMessage( roost.Roost(context.Context()), 'foo', f) self.assertFalse(f.set) m.forward_the_future() self.assertTrue(f.set)
def test(self): m = irccloud.IRCCloudMessage(irccloud.IRCCloud(context.Context()), { 'eid': 0.0, }) self.assertEqual(str(m), "0.0 {'eid': 0.0}") self.assertEqual( repr(m), '<IRCCloudMessage 0.0 <IRCCloudNonAddress irccloud , system>' ' 12 chars None noise>')
def test(self): with tempfile.TemporaryDirectory() as tmp_path: c = context.Context(home=tmp_path) self.assertIsNone(c.backends) self.assertEqual(c.home_directory, tmp_path) c.load() self.assertIsNotNone(c.backends) c.backend_spec = c.backend_spec + '; .smeerp' c.conf_write() self.assertTrue( os.path.exists(os.path.join(tmp_path, '.snipe', 'config'))) d = context.Context(home=tmp_path) with self.assertLogs('Snipe', logging.ERROR): d.load() self.assertEqual(c.backend_spec, d.backend_spec)
def test___init___0(self): m = slack.SlackMessage( slack.Slack(context.Context(), slackname='test'), { 'type': 'message', 'channel': 'foo', 'ts': 0.0, }) os.environ['TZ'] = 'GMT' self.assertEqual(str(m), '00:00 slack.test; foo\n') self.assertEqual( repr(m), '<SlackMessage 0.0 <SlackAddress slack.test ?, foo> 0 chars>')
async def test_start(self): c = context.Context() ui = Mock() ui.get_erasechar.return_value = chr(8) c.backends = Mock() c.backends.start.return_value = mocks.promise(None) with patch('snipe.util.Configurable') as Configurable: await c.start(ui) self.assertIs(c.ui, ui) self.assertIs(ui.context, c) self.assertIs(c.erasechar, chr(8)) Configurable.immanentize.assert_called() ui.initial.assert_called() c.backends.start.assert_called()
def test(self): i = irccloud.IRCCloud(context.Context()) m = irccloud.IRCCloudMessage(i, { 'eid': 0.0, }) self.assertEqual(str(m), "0.0 {'eid': 0.0}") self.assertEqual( repr(m), '<IRCCloudMessage 0.0 <IRCCloudNonAddress irccloud , system>' ' 12 chars None noise>') self.assertEqual('irccloud; IRCCloud system', str(m.sender)) with patch('time.time', return_value=3.2): m = irccloud.IRCCloudMessage(i, {}) self.assertEqual(3.2, float(m)) m = irccloud.IRCCloudMessage( i, { 'type': 'motd_response', 'start': 'start', 'lines': ['A', 'B'], 'msg': 'X' }) self.assertEqual('start\nA\nB\nX', m.body) i.connections[0] = {'hostname': 'quux'} m = irccloud.IRCCloudMessage(i, { 'from': 'foo', 'from_name': 'bar', 'from_host': 'baz', 'cid': 0, }) self.assertEqual('irccloud; quux foo', str(m.sender)) i.connections[0] = {'hostname': 'quux'} m = irccloud.IRCCloudMessage(i, { 'nick': 'foo', 'from_name': 'bar', 'from_host': 'baz', 'cid': 0, }) self.assertEqual('irccloud; quux foo', str(m.sender)) self.assertEqual('foo', m.sender.short())
def test_followup_filter(self): i = irccloud.IRCCloud(context.Context()) i.connections[0] = {'hostname': 'host'} i.buffers[0] = {'name': '#channel'} m = irccloud.IRCCloudMessage( i, { 'bid': 0, 'cid': 0, 'from': 'nick', 'from_name': 'bar', 'from_host': 'baz', }) self.assertEqual('irccloud; host #channel', m.followup()) self.assertEqual('irccloud; host nick', m.reply()) self.assertEqual('backend == "irccloud" and channel = "#channel"', str(m.filter())) self.assertEqual( 'backend == "irccloud" and channel = "#channel"' ' and sender = "irccloud; host nick"', str(m.filter(1))) m = irccloud.IRCCloudMessage(i, {}) self.assertEqual('backend == "irccloud"', str(m.filter()))
def test(self): m = roost.RoostMessage( roost.Roost(context.Context()), { 'message': 'foo', 'receiveTime': 0.0, 'sender': '*****@*****.**', 'class': 'MESSAGE', 'instance': 'white-magic', 'recipient': '', 'opcode': 'stark', 'signature': 'Tim The Beaver', 'time': 0.0, }) os.environ['TZ'] = 'GMT' self.assertEqual( str(m), 'Class: MESSAGE Instance: white-magic Recipient: [stark]\n' 'From: Tim The Beaver <roost; tim> at Thu Jan 1 00:00:00 1970\n' 'foo\n\n') self.assertEqual( repr(m), '<RoostMessage 0.0 <RoostPrincipal roost [email protected]>' ' 3 chars>')
def test(self): r = roost.Roost(context.Context()) p = roost.RoostPrincipal(r, 'foo@X' + r.realm) self.assertEqual(str(p), 'roost; foo@X' + r.realm) p = roost.RoostPrincipal(r, 'foo@' + r.realm) self.assertEqual(str(p), 'roost; foo')
def test(self): m = roost.RoostMessage( roost.Roost(context.Context()), { 'message': 'foo', 'receiveTime': 0.0, 'sender': '*****@*****.**', 'class': 'MESSAGE', 'instance': 'white-magic', 'recipient': '', 'opcode': 'stark', 'signature': 'Tim The Beaver', 'time': 0.0, }) os.environ['TZ'] = 'GMT' self.assertEqual( str(m), 'Class: MESSAGE Instance: white-magic Recipient: [stark]\n' 'From: Tim The Beaver <roost; tim> at Thu Jan 1 00:00:00 1970\n' 'foo\n\n') self.assertEqual( repr(m), '<RoostMessage 0.0 <RoostPrincipal roost [email protected]>' ' 3 chars>') self.assertEqual( m.canon('sender', 'foo@X' + m.backend.realm), 'foo@X' + m.backend.realm) self.assertEqual( m.canon('sender', 'foo@' + m.backend.realm), 'foo') self.assertEqual(m.canon('class', 'foo'), 'foo') self.assertEqual(m.canon('class', 'ununfoo.d.d'), 'foo') self.assertEqual(m.canon('class', 'foo'), 'foo') self.assertEqual(m.canon('class', 'unfoo'), 'foo') self.assertEqual(m.canon('instance', 'foo'), 'foo') self.assertEqual(m.canon('instance', 'foo'), 'foo') self.assertEqual(m.canon('opcode', 'foo'), 'foo') self.assertEqual(m.canon('opcode', ' foo'), 'foo') self.assertEqual(m.canon('opcode', 'foo'), 'foo') self.assertEqual(m.reply(), 'roost; tim') m.data['recipient'] = 'foo' self.assertEqual(m.reply(), 'roost; -i white-magic tim') m.data['class'] = 'white-magic' self.assertEqual(m.reply(), 'roost; -c white-magic -i white-magic tim') m.outgoing = True self.assertEqual(m.reply(), 'roost; -c white-magic -i white-magic foo') m.transformed = 'rot13' self.assertEqual( m.reply(), 'roost; -R -c white-magic -i white-magic foo') self.assertEqual( m.followup(), 'roost; -R -c white-magic -i white-magic foo') m.body = 'CC: foo bar baz\nquux' self.assertEqual( m.followup(), 'roost; -R -c white-magic -i white-magic -C bar baz foo tim') m.transformed = 'zcrypt' m.data['recipient'] = '' self.assertEqual( m.followup(), 'roost; -x -c white-magic -i white-magic') m.data['recipient'] = '@FOO' self.assertEqual( m.followup(), 'roost; -x -c white-magic -i white-magic @FOO') self.assertEqual( str(m.filter(0)), 'backend == "roost" and class = "white-magic"') self.assertEqual( str(m.filter(1)), 'backend == "roost" and class = "white-magic"' ' and instance = "white-magic"') self.assertEqual( str(m.filter(2)), 'backend == "roost" and class = "white-magic"' ' and instance = "white-magic" and sender = "roost; tim"') m.data['recipient'] = 'foo' m.personal = True self.assertEqual( str(m.filter(0)), 'backend == "roost" and personal' ' and (sender = "roost; tim" or recipient = "tim")') m.backend.r.principal = str(m._sender) self.assertEqual( str(m.filter(0)), 'backend == "roost" and personal' ' and (sender = "roost; foo" or recipient = "foo")')