def test_get_when_db_down(disconnected_database, controller: layabase.CRUDController): with pytest.raises(Exception) as exception_info: controller.get_one({}) assert ( str(exception_info.value) == """A error occurred while querying database: (sqlite3.OperationalError) no such table: test\n[SQL: SELECT test."key" AS test_key \nFROM test]\n(Background on this error at: http://sqlalche.me/e/13/e3q8)""" )
def test_get_versioned_audit_after_post_put( controllers, controller_versioned: layabase.CRUDController, mock_mongo_audit_datetime, ): controller_versioned.post({"key": "my_key", "enum_fld": EnumTest.Value1}) controller_versioned.put({"key": "my_key", "enum_fld": EnumTest.Value2}) assert controller_versioned.get_one({"key": "my_key"}) == { "enum_fld": "Value2", "key": "my_key", "valid_since_revision": 2, "valid_until_revision": -1, }
def test_get_one_with_validation_failure(controller: layabase.CRUDController): with pytest.raises(layabase.ValidationFailed) as exception_info: controller.get_one({"mandatory": "failure"}) assert exception_info.value.errors == {"mandatory": ["Not a valid int."]} assert exception_info.value.received_data == {"mandatory": "failure"}
def test_get_when_db_down(disconnected_database, controller: layabase.CRUDController): with pytest.raises(Exception) as exception_info: controller.get_one({}) assert str(exception_info.value) == "Database could not be reached."