Пример #1
0
    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>')
Пример #2
0
    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])
Пример #3
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)
Пример #4
0
 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>')
Пример #5
0
    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)
Пример #6
0
    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>')
Пример #7
0
    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()
Пример #8
0
    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())
Пример #9
0
    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()))
Пример #10
0
    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>')
Пример #11
0
 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')
Пример #12
0
    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")')