def test_invalid_data_does_not_validate():
    extension = OrganizationExtension()

    with pytest.raises(ValidationError):
        validate_jsonschema({"organization": "2"}, extension.get_schema())

    with pytest.raises(ValidationError):
        validate_jsonschema({"organization": 0}, extension.get_schema())

    with pytest.raises(ValidationError):
        validate_jsonschema({"organization": [2]}, extension.get_schema())
def test_invalid_data_does_not_validate() -> None:
    extension = OrganizationExtension()
    schema = cast(MutableMapping[str, Any], extension.get_schema())

    with pytest.raises(ValidationError):
        validate_jsonschema({"organization": "2"}, schema)

    with pytest.raises(ValidationError):
        validate_jsonschema({"organization": 0}, schema)

    with pytest.raises(ValidationError):
        validate_jsonschema({"organization": [2]}, schema)
def test_organization_extension_query_processing_happy_path():
    extension = OrganizationExtension()
    raw_data = {"organization": 2}

    valid_data = validate_jsonschema(raw_data, extension.get_schema())
    query = Query({"conditions": []}, TableSource("my_table", ColumnSet([])))
    request_settings = HTTPRequestSettings()

    extension.get_processor().process_query(query, valid_data,
                                            request_settings)
    assert query.get_condition_from_ast() == binary_condition(
        None, ConditionFunctions.EQ, Column(None, None, "org_id"),
        Literal(None, 2))
示例#4
0
def test_organization_extension_query_processing_happy_path() -> None:
    extension = OrganizationExtension()
    raw_data = {"organization": 2}

    valid_data = validate_jsonschema(raw_data, extension.get_schema())
    query = Query({"conditions": []},
                  QueryEntity(EntityKey.EVENTS, ColumnSet([])))
    request_settings = HTTPRequestSettings()

    extension.get_processor().process_query(query, valid_data,
                                            request_settings)
    assert query.get_condition_from_ast() == binary_condition(
        ConditionFunctions.EQ, Column("_snuba_org_id", None, "org_id"),
        Literal(None, 2))
def test_organization_extension_query_processing_happy_path():
    extension = OrganizationExtension()
    raw_data = {"organization": 2}

    valid_data = validate_jsonschema(raw_data, extension.get_schema())
    query = Query({"conditions": []})
    request_settings = RequestSettings(turbo=False,
                                       consistent=False,
                                       debug=False)

    extension.get_processor().process_query(query, valid_data,
                                            request_settings)

    assert query.get_conditions() == [("org_id", "=", 2)]
示例#6
0
 def get_extensions(self) -> Mapping[str, QueryExtension]:
     return {
         "timeseries": TimeSeriesExtension(
             default_granularity=3600,
             default_window=timedelta(days=7),
             timestamp_column="timestamp",
         ),
         "organization": OrganizationExtension(),
     }
示例#7
0
 def get_extensions(self) -> Mapping[str, QueryExtension]:
     return {
         "timeseries":
         TimeSeriesExtension(
             default_granularity=3600,
             default_window=timedelta(days=7),
             timestamp_column="started",
         ),
         "organization":
         OrganizationExtension(),
         "project":
         ProjectExtension(processor=ProjectExtensionProcessor(
             project_column="project_id")),
     }