Esempio n. 1
0
async def test_get_no_key_500(patched_send, opsdroid_matrix):
    patched_send.return_value = nio.RoomGetStateEventError({"code": 500})

    db = DatabaseMatrix(
        {"should_encrypt": False, "single_state_key": False}, opsdroid=opsdroid_matrix
    )
    db.should_migrate = False

    with pytest.raises(RuntimeError):
        await db.get("twim")
Esempio n. 2
0
async def test_get_no_key_404(patched_send, opsdroid_matrix):
    patched_send.return_value = nio.RoomGetStateEventError({"errcode": "M_NOTFOUND"})
    patched_send.return_value.transport_response = AsyncMock()
    patched_send.return_value.transport_response.status = 404

    db = DatabaseMatrix(
        {"should_encrypt": False, "single_state_key": False}, opsdroid=opsdroid_matrix
    )
    db.should_migrate = False

    data = await db.get("twim")
    assert data is None
 def side_effect(resp, *args, **kwargs):
     if resp is nio.RoomGetStateResponse:
         return nio.RoomGetStateResponse(
             [{
                 "type": "opsdroid.database",
                 "state_key": "twim",
                 "event_id": "roomeventid",
                 "content": {
                     "hello": "world"
                 },
             }],
             "!notaroomid",
         )
     else:
         return nio.RoomGetStateEventError(message="testing")
Esempio n. 4
0
async def test_errors(patched_send, opsdroid_matrix, mocker, caplog,
                      patched_uuid):
    def side_effect(resp, *args, **kwargs):
        if resp is nio.RoomGetStateEventResponse:
            resp = nio.RoomGetStateEventResponse(
                {"twim": {
                    "encrypted_val": "enceventid"
                }}, "", "", "")
            return resp
        else:
            return nio.RoomGetEventError(message="testing")

    patched_send.side_effect = side_effect

    db = DatabaseMatrix({"should_encrypt": False}, opsdroid=opsdroid_matrix)
    caplog.clear()
    db.should_migrate = False
    await db.get("twim")

    assert [
        "Error decrypting event enceventid while getting twim: testing(None)"
    ] == [rec.message for rec in caplog.records]

    patched_send.side_effect = [
        nio.RoomGetStateError(message="testing"),
        nio.RoomGetStateEventError(message="testing"),
    ]
    caplog.clear()
    db.should_migrate = True
    with pytest.raises(RuntimeError):
        await db.get("hello")

    assert [
        "Error migrating from opsdroid.database to dev.opsdroid.database in room !notaroomid: testing(None)"
    ] == [rec.message for rec in caplog.records]

    patched_send.side_effect = [
        nio.RoomGetStateError(message="testing"),
        nio.RoomGetStateEventError(message="testing"),
    ]
    caplog.clear()
    db.should_migrate = True
    await db.delete("hello")

    assert [
        "Error migrating from opsdroid.database to dev.opsdroid.database in room !notaroomid: testing(None)",
        "Error deleting hello from matrix room !notaroomid: testing(None)",
    ] == [rec.message for rec in caplog.records]

    def side_effect(resp, *args, **kwargs):
        if resp is nio.RoomGetStateEventResponse:
            resp = nio.RoomGetStateEventResponse(
                {"hello": {
                    "encrypted_val": "enceventid"
                }}, "", "", "")
            return resp
        else:
            return nio.RoomGetEventError(message="testing")

    patched_send.side_effect = side_effect

    caplog.clear()
    db.connector._allow_encryption = True
    db.should_migrate = False
    db._single_state_key = False
    with pytest.raises(MatrixException):
        await db.put("twim", {"hello": "world"})

    assert [
        "Error decrypting event enceventid while getting twim: testing(None)"
    ] == [rec.message for rec in caplog.records]