def test_filter(read_database: ReadDatabase): res = MagicMock() read_database.fetch_models = f = MagicMock(return_value=res) filter = FilterOperator("a", "=", "a") models = read_database.filter("c", filter, []) f.assert_called() assert models == res
def test_exists_false(reader: ReaderService): reader.count = count = MagicMock(return_value={"count": 0, "position": 0}) filter_operator = FilterOperator("field", "=", "data") request = AggregateRequest("collection", filter_operator) assert reader.exists(request) == {"exists": False, "position": 0} count.assert_called_with(request)
def test_filter(reader: ReaderService, read_db: SqlReadDatabaseBackendService): result = MagicMock() read_db.filter = filter = MagicMock(return_value=result) filter_operator = FilterOperator("field", "=", "data") request = FilterRequest("collection", filter_operator, ["field"]) assert reader.filter(request) == result read_db.get_context.assert_called() filter.assert_called_with("collection", filter_operator, ["field"])
def test_aggregate(read_database: ReadDatabase, connection: ConnectionHandler): res = MagicMock() res.copy = lambda: res connection.query = q = MagicMock(return_value=[res]) filter = FilterOperator("a", "=", "a") param = CountFilterQueryFieldsParameters() models = read_database.aggregate("c", filter, param) q.assert_called() assert models == res
def test_max(reader: ReaderService, read_db: SqlReadDatabaseBackendService): result = MagicMock() read_db.aggregate = aggregate = MagicMock(return_value=result) filter_operator = FilterOperator("field", "=", "data") request = MinMaxRequest("collection", filter_operator, "field") params = AggregateFilterQueryFieldsParameters("max", "field", "int") assert reader.max(request) == result read_db.get_context.assert_called() aggregate.assert_called_with("collection", filter_operator, params)
def test_locked_collectionfield_with_filter( write_handler, connection_handler, valid_metadata ): locked_collectionfield = MagicMock() connection_handler.collectionfield = MagicMock(return_value=locked_collectionfield) valid_metadata["locked_fields"]["a/f"] = { "position": 42, "filter": FilterOperator("field", "=", "value"), } with pytest.raises(ModelLocked) as e: write_handler.write(valid_metadata) assert e.value.key == locked_collectionfield
def test_build_filter_str_filter_operator(query_helper: SqlQueryHelper): f = query_helper.build_filter_str query_helper.build_filter_str = MagicMock(return_value="") filter = FilterOperator("f", "=", 0) assert f(filter, [], "a") == "a.data->>%s = %s::text"
def test_build_filter_str_none_invalid(query_helper: SqlQueryHelper): filter = FilterOperator("field", ">", None) with pytest.raises(InvalidFormat): query_helper.build_filter_str(filter, [])
def test_build_filter_str_none(query_helper: SqlQueryHelper): filter = FilterOperator("field", "!=", None) args = [] assert query_helper.build_filter_str(filter, args) == "data->>%s IS NOT NULL" assert args == ["field"]