Beispiel #1
0
def test_update_instrument_responsible_users(instrument, users, capsys):
    instrument = instruments.get_instruments()[0]
    assert len(instrument.responsible_users) == 0
    instruments.add_instrument_responsible_user(instrument.id, users[0].id)
    instruments.add_instrument_responsible_user(instrument.id, users[1].id)
    assert len(instrument.responsible_users) == 2
    assert instrument.responsible_users == [
        users[0], users[1]
    ] or instrument.responsible_users == [users[1], users[0]]

    scripts.main([
        scripts.__file__, 'update_instrument_responsible_users',
        str(instrument.id),
        str(users[0].id),
        str(users[2].id)
    ])
    assert "Success" in capsys.readouterr()[0]

    instrument = instruments.get_instruments()[0]
    assert len(instrument.responsible_users) == 2
    assert instrument.responsible_users == [
        users[0], users[2]
    ] or instrument.responsible_users == [users[2], users[0]]

    scripts.main([
        scripts.__file__, 'update_instrument_responsible_users',
        str(instrument.id)
    ])
    assert "Success" in capsys.readouterr()[0]

    instrument = instruments.get_instruments()[0]
    assert len(instrument.responsible_users) == 0
Beispiel #2
0
def test_create_instrument():
    assert len(instruments.get_instruments()) == 0
    instrument = instruments.create_instrument(name="Example Instrument",
                                               description="")
    assert len(instruments.get_instruments()) == 1
    assert instrument == instruments.get_instrument(
        instrument_id=instrument.id)
    assert len(instrument.responsible_users) == 0
Beispiel #3
0
def test_create_instrument_missing_arguments(capsys):
    assert len(instruments.get_instruments()) == 0

    with pytest.raises(SystemExit) as exc_info:
        scripts.main([scripts.__file__, 'create_instrument'])
    assert exc_info.value != 0
    assert 'Usage' in capsys.readouterr()[0]
    assert len(instruments.get_instruments()) == 0
Beispiel #4
0
def test_update_instrument_responsible_users_invalid_instrument(instrument, users, capsys):
    instrument = instruments.get_instruments()[0]
    assert len(instrument.responsible_users) == 0

    with pytest.raises(SystemExit) as exc_info:
        scripts.main([scripts.__file__, 'update_instrument_responsible_users', 'Example Instrument', str(users[0].id)])
    assert exc_info.value != 0
    assert "Error: instrument_id must be an integer" in capsys.readouterr()[1]

    instrument = instruments.get_instruments()[0]
    assert len(instrument.responsible_users) == 0
Beispiel #5
0
def test_update_instrument_responsible_users_invalid_user(instrument, capsys):
    instrument = instruments.get_instruments()[0]
    assert len(instrument.responsible_users) == 0

    with pytest.raises(SystemExit) as exc_info:
        scripts.main([scripts.__file__, 'update_instrument_responsible_users', str(instrument.id), 'User 1'])
    assert exc_info.value != 0
    assert "Error: instrument_reponsible_user_ids must be integer" in capsys.readouterr()[1]

    instrument = instruments.get_instruments()[0]
    assert len(instrument.responsible_users) == 0
Beispiel #6
0
def test_update_instrument_responsible_users_missing_user(instrument, capsys):
    instrument = instruments.get_instruments()[0]
    assert len(instrument.responsible_users) == 0

    with pytest.raises(SystemExit) as exc_info:
        scripts.main([scripts.__file__, 'update_instrument_responsible_users', str(instrument.id), '42'])
    assert exc_info.value != 0
    assert "Error: no user with the id #42 exists" in capsys.readouterr()[1]

    instrument = instruments.get_instruments()[0]
    assert len(instrument.responsible_users) == 0
Beispiel #7
0
def test_update_instrument_responsible_users_missing_arguments(instrument, users, capsys):
    instrument = instruments.get_instruments()[0]
    assert len(instrument.responsible_users) == 0

    with pytest.raises(SystemExit) as exc_info:
        scripts.main([scripts.__file__, 'update_instrument_responsible_users'])
    assert exc_info.value != 0
    assert "Usage" in capsys.readouterr()[0]

    instrument = instruments.get_instruments()[0]
    assert len(instrument.responsible_users) == 0
Beispiel #8
0
def test_create_existing_instrument(capsys):
    name = 'Example Instrument'
    description = 'Example Instrument Description'
    instruments.create_instrument(name, description)
    assert len(instruments.get_instruments()) == 1

    with pytest.raises(SystemExit) as exc_info:
        scripts.main([scripts.__file__, 'create_instrument', name, description])
    assert exc_info.value != 0
    assert 'Error: an instrument with this name already exists' in capsys.readouterr()[1]
    assert len(instruments.get_instruments()) == 1
Beispiel #9
0
def test_update_missing_instrument(capsys):
    name = 'Example Instrument'
    description = 'Example Instrument Description'
    assert len(instruments.get_instruments()) == 0

    with pytest.raises(SystemExit) as exc_info:
        scripts.main(
            [scripts.__file__, 'update_instrument',
             str(1), name, description])
    assert exc_info.value != 0
    assert "Error: no instrument with this id exists" in capsys.readouterr()[1]
    assert len(instruments.get_instruments()) == 0
Beispiel #10
0
def test_create_instrument(capsys):
    name = 'Example Instrument'
    description = 'Example Instrument Description'
    assert len(instruments.get_instruments()) == 0

    scripts.main([scripts.__file__, 'create_instrument', name, description])
    assert 'Success' in capsys.readouterr()[0]

    assert len(instruments.get_instruments()) == 1
    instrument = instruments.get_instruments()[0]
    assert instrument.name == name
    assert instrument.description == description
    assert len(instrument.responsible_users) == 0
Beispiel #11
0
def test_update_instrument_invalid_instrument_id(capsys):
    name = 'Example Instrument'
    description = 'Example Instrument Description'
    instrument = instruments.create_instrument(name, description)
    assert len(instruments.get_instruments()) == 1

    with pytest.raises(SystemExit) as exc_info:
        scripts.main([scripts.__file__, 'update_instrument', name, name, ""])
    assert exc_info.value != 0
    assert "Error: instrument_id must be an integer" in capsys.readouterr()[1]

    assert len(instruments.get_instruments()) == 1
    instrument = instruments.get_instruments()[0]
    assert instrument.name == name
    assert instrument.description == description
Beispiel #12
0
def test_update_instrument(capsys):
    name = 'Example Instrument'
    description = 'Example Instrument Description'
    instrument = instruments.create_instrument(name, description)
    assert len(instruments.get_instruments()) == 1

    scripts.main(
        [scripts.__file__, 'update_instrument',
         str(instrument.id), name, ''])
    assert "Success" in capsys.readouterr()[0]

    assert len(instruments.get_instruments()) == 1
    instrument = instruments.get_instruments()[0]
    assert instrument.name == name
    assert instrument.description == ''
    assert len(instrument.responsible_users) == 0
Beispiel #13
0
def test_update_instrument_missing_arguments(capsys):
    name = 'Example Instrument'
    description = 'Example Instrument Description'
    instrument = instruments.create_instrument(name, description)
    assert len(instruments.get_instruments()) == 1

    with pytest.raises(SystemExit) as exc_info:
        scripts.main(
            [scripts.__file__, 'update_instrument',
             str(instrument.id)])
    assert exc_info.value != 0
    assert "Usage" in capsys.readouterr()[0]

    assert len(instruments.get_instruments()) == 1
    instrument = instruments.get_instruments()[0]
    assert instrument.name == name
    assert instrument.description == description
Beispiel #14
0
 def get(self):
     instruments = get_instruments()
     return [instrument_to_json(instrument) for instrument in instruments]
Beispiel #15
0
def test_list_instruments(instruments, capsys):
    scripts.main([scripts.__file__, 'list_instruments'])
    output = capsys.readouterr()[0]
    instruments = get_instruments()
    for instrument in get_instruments():
        assert '- #{0}: {1}'.format(instrument.id, instrument.name) in output