Beispiel #1
0
def test_slave_state_expired():
    slave_state = SlaveState('10.0.0.2', timedelta(hours=3), '34', 'cp34m',
                             'linux_armv7l', 'piwheels2')
    slave_state._first_seen = datetime.now(tz=UTC) - timedelta(hours=5)
    assert not slave_state.expired
    slave_state._last_seen = datetime.now(tz=UTC) - timedelta(hours=4)
    assert slave_state.expired
Beispiel #2
0
def test_slave_recv_bad_built(build_state, file_state, slave_queue):
    slave_state = SlaveState('10.0.0.2', timedelta(hours=3), '34', 'cp34m',
                             'linux_armv7l', 'piwheels2')
    with mock.patch('piwheels.states.datetime') as dt:
        now = datetime.now(tz=UTC)
        dt.now.return_value = now
        slave_state._reply = ('BUILD', ['foo', '0.1'])
        slave_state.request = ('BUILT', None)
        assert slave_state.build is None
        slave_state.reply = ('DONE', None)
        assert slave_state.build is None
Beispiel #3
0
def test_slave_state_recv_hello(master_status_queue, slave_queue):
    with mock.patch('piwheels.states.datetime') as dt:
        now = datetime.now(tz=UTC)
        dt.now.return_value = now
        slave_state = SlaveState('10.0.0.2', timedelta(hours=3), '34', 'cp34m',
                                 'linux_armv7l', 'piwheels2')
        slave_state._reply = ('IDLE', None)
        slave_state.hello()
        assert master_status_queue.recv_msg() == ('SLAVE', [
            slave_state.slave_id, now, 'HELLO',
            [timedelta(hours=3), '34', 'cp34m', 'linux_armv7l', 'piwheels2']
        ])
        assert master_status_queue.recv_msg() == ('SLAVE', [
            slave_state.slave_id, now, 'IDLE', None
        ])
Beispiel #4
0
def test_slave_recv_reply(build_state, file_state, slave_queue):
    slave_state = SlaveState('10.0.0.2', timedelta(hours=3), '34', 'cp34m',
                             'linux_armv7l', 'piwheels2')
    with mock.patch('piwheels.states.datetime') as dt:
        now = datetime.now(tz=UTC)
        dt.now.return_value = now
        slave_state._reply = ('BUILD', ['foo', '0.1'])
        slave_state.request = ('BUILT', [
            build_state.status, build_state.duration, build_state.output,
            [file_state.as_message()]
        ])
        build_state._slave_id = slave_state.slave_id
        assert slave_state.build == build_state
        slave_state.reply = ('DONE', None)
        assert slave_state.build is None
Beispiel #5
0
def test_slave_state_hello(master_status_queue, slave_queue):
    with mock.patch('piwheels.states.datetime') as dt:
        now = datetime.now(tz=UTC)
        dt.now.return_value = now
        slave_state = SlaveState('10.0.0.2', timedelta(hours=3), '34', 'cp34m',
                                 'linux_armv7l', 'piwheels2')
        slave_state.reply = ('ACK', [slave_state.slave_id, const.PYPI_XMLRPC])
        assert master_status_queue.recv_msg() == ('SLAVE', [
            slave_state.slave_id, now, 'HELLO',
            [timedelta(hours=3), '34', 'cp34m', 'linux_armv7l', 'piwheels2']
        ])
        assert master_status_queue.recv_msg() == ('SLAVE', [
            slave_state.slave_id, now, 'ACK',
            [slave_state.slave_id, 'https://pypi.org/pypi']
        ])
Beispiel #6
0
def test_slave_state_init():
    now = datetime.now(tz=UTC)
    with mock.patch('piwheels.states.datetime') as dt:
        dt.now.return_value = now
        slave_state = SlaveState('10.0.0.2', timedelta(hours=3),
                                 timedelta(minutes=2), '34', 'cp34m',
                                 'linux_armv7l', 'piwheels2',
                                 'Raspbian GNU/Linux', '9 (stretch)', 'a020d3',
                                 '12345678')
        assert slave_state.slave_id == 1
        assert slave_state.address == '10.0.0.2'
        assert slave_state.label == 'piwheels2'
        assert slave_state.build_timeout == timedelta(hours=3)
        assert slave_state.busy_timeout == timedelta(minutes=2)
        assert slave_state.native_py_version == '34'
        assert slave_state.native_abi == 'cp34m'
        assert slave_state.native_platform == 'linux_armv7l'
        assert slave_state.os_name == 'Raspbian GNU/Linux'
        assert slave_state.os_version == '9 (stretch)'
        assert slave_state.board_revision == 'a020d3'
        assert slave_state.board_serial == '12345678'
        assert slave_state.first_seen == now
        assert slave_state.last_seen == now
        assert slave_state.request is None
        assert slave_state.reply is None
        assert slave_state.build is None
        assert list(slave_state.stats) == []
        assert slave_state.clock_skew is None
        assert not slave_state.killed
        assert not slave_state.paused
        assert not slave_state.skipped
Beispiel #7
0
def test_slave_state_init():
    now = datetime.now(tz=UTC)
    with mock.patch('piwheels.states.datetime') as dt:
        dt.now.return_value = now
        slave_state = SlaveState('10.0.0.2', timedelta(hours=3), '34', 'cp34m',
                                 'linux_armv7l', 'piwheels2')
        assert slave_state.slave_id == 1
        assert slave_state.address == '10.0.0.2'
        assert slave_state.label == 'piwheels2'
        assert slave_state.timeout == timedelta(hours=3)
        assert slave_state.native_py_version == '34'
        assert slave_state.native_abi == 'cp34m'
        assert slave_state.native_platform == 'linux_armv7l'
        assert slave_state.first_seen == now
        assert slave_state.last_seen == now
        assert slave_state.request is None
        assert slave_state.reply is None
        assert slave_state.build is None
        assert not slave_state.terminated
Beispiel #8
0
def slave_state(slave_queue):
    return SlaveState('10.0.0.2', timedelta(hours=3), timedelta(minutes=2),
                      '34', 'cp34m', 'linux_armv7l', 'piwheels2',
                      'Raspbian GNU/Linux', '9 (stretch)', 'a020d3',
                      '12345678')
Beispiel #9
0
def test_slave_state_kill():
    slave_state = SlaveState('10.0.0.2', timedelta(hours=3), '34', 'cp34m',
                             'linux_armv7l', 'piwheels2')
    assert not slave_state.terminated
    slave_state.kill()
    assert slave_state.terminated