예제 #1
0
파일: tests.py 프로젝트: 30loops/libthirty
    def test_internal_message_list(self):
        msg = {
            "status": "queued",
            "messages": []
        }

        response = Mock()
        response.status_code = 200
        response.content = json.dumps(msg)

        self.mock_requests.request.return_value = response

        lbh = LogBookHandler('uuid')

        # The logbook starts off with no messages
        eq_(0, len(lbh.messages))

        msg['messages'].append(
        {
            "asctime": "2012-02-08T11:15:04",
            "message": "message1",
        })

        response.content = json.dumps(msg)
        self.mock_requests.request.return_value = response

        new_msg = lbh.fetch()

        # The logbook has one message now
        eq_(1, len(lbh.messages))
        eq_(new_msg, lbh.messages)

        messages = [
        {
            "asctime": "2012-02-08T11:15:05",
            "message": "message2",
        },
        {
            "asctime": "2012-02-08T11:15:06",
            "message": "message3",
        }]

        msg['messages'].extend(messages)

        response.content = json.dumps(msg)
        self.mock_requests.request.return_value = response

        new_msg = lbh.fetch()

        # The logbook has one message now
        eq_(3, len(lbh.messages))
        eq_(new_msg, messages)
예제 #2
0
파일: utils.py 프로젝트: 30loops/thirty-cli
def _poll_logbook(uuid):
    import time

    lbh = LogBookHandler(uuid)
    firstrun = True
    while True:
        messages = lbh.fetch()
        for msg in messages:
            sys.stdout.write(format_logbook_message(msg, firstrun))
            firstrun = False
        if lbh.status in 'finished':
            sys.stdout.write('\n')
            break
        if lbh.status in 'error':
            break
        if not firstrun:
            sys.stdout.write(colorize(".", "green"))
            sys.stdout.flush()
        time.sleep(2)
예제 #3
0
def _poll_logbook(uuid):
    import time

    lbh = LogBookHandler(uuid)
    while True:
        messages = lbh.fetch()
        for msg in messages:
            if msg['loglevel'] == 1:
                sys.stdout.write(format_logbook_message(msg))
                sys.stdout.write('\n')
            elif msg['loglevel'] == 3:
                sys.stderr.write(format_logbook_message(msg))
                sys.stderr.write('\n')
        if lbh.status in 'finished':
            sys.stdout.write('\n')
            break
        if lbh.status in 'error':
            sys.stderr.write('\n')
            break
        time.sleep(5)
예제 #4
0
파일: tests.py 프로젝트: 30loops/libthirty
    def test_logbook_status(self):
        msg = {
            "status": "queued",
            "messages": []
        }
        response = Mock()
        response.status_code = 200
        response.content = json.dumps(msg)

        self.mock_requests.request.return_value = response

        lbh = LogBookHandler('uuid')

        eq_('unknown', lbh.status)

        lbh.fetch()

        eq_('queued', lbh.status)
        self.mock_requests.request.assert_called_once_with(
                url=lbh.uri(), method='get',
                verify='/path/ssl/StartSSL_CA.pem',
                )
예제 #5
0
    def do_logbook(self, args, global_args):
        """Poll the logbook for an action."""
        env.username = global_args.username
        env.password = global_args.password

        lbh = LogBookHandler(args.uuid)
        try:
            messages = lbh.fetch()
        except HttpReturnError as e:
            #FIXME: push this into its own formatting method
            error = {
                    "code": e.args[0],
                    "message": e.args[1]
                    }
            sys.stderr.write(json.dumps(error, indent=4))
            sys.stderr.flush()
            sys.exit(1)

        if global_args.raw:
            sys.stdout.write(lbh.response.content)
        else:
            for msg in messages:
                sys.stdout.write(format_logbook_message(msg))
예제 #6
0
파일: tests.py 프로젝트: 30loops/libthirty
    def test_uri_construction(self):
        lbh = LogBookHandler(uuid='uuid')

        expected = "https://api.30loops.net/0.9/30loops/logbook/uuid"

        eq_(expected, lbh.uri())