File tree Expand file tree Collapse file tree 2 files changed +36
-1
lines changed
tests/snuba/api/endpoints Expand file tree Collapse file tree 2 files changed +36
-1
lines changed Original file line number Diff line number Diff line change @@ -801,7 +801,8 @@ def resolve_attribute(
801
801
field_type = "string"
802
802
else :
803
803
field_type = None
804
- field = tag_match .group ("tag" ) if tag_match else column
804
+ # make sure to remove surrounding quotes if it's a tag
805
+ field = tag_match .group ("tag" ).strip ('"' ) if tag_match else column
805
806
if field is None :
806
807
raise InvalidSearchQuery (f"Could not parse { column } " )
807
808
# Assume string if a type isn't passed. eg. tags[foo]
Original file line number Diff line number Diff line change @@ -4547,3 +4547,37 @@ def test_app_start_fields(self):
4547
4547
4548
4548
assert meta ["dataset" ] == self .dataset
4549
4549
assert meta ["dataset" ] == self .dataset
4550
+
4551
+ def test_typed_attributes_with_colons (self ):
4552
+ span = self .create_span (
4553
+ {
4554
+ "data" : {
4555
+ "flag.evaluation.feature.organizations:foo" : True ,
4556
+ },
4557
+ },
4558
+ start_ts = self .ten_mins_ago ,
4559
+ )
4560
+ self .store_spans (
4561
+ [
4562
+ self .create_span (start_ts = self .ten_mins_ago ),
4563
+ span ,
4564
+ ],
4565
+ is_eap = self .is_eap ,
4566
+ )
4567
+
4568
+ response = self .do_request (
4569
+ {
4570
+ "field" : ['tags["flag.evaluation.feature.organizations:foo",number]' ],
4571
+ "query" : 'has:tags["flag.evaluation.feature.organizations:foo",number]' ,
4572
+ "project" : self .project .id ,
4573
+ "dataset" : self .dataset ,
4574
+ }
4575
+ )
4576
+ assert response .status_code == 200 , response .content
4577
+ assert response .data ["data" ] == [
4578
+ {
4579
+ "id" : span ["span_id" ],
4580
+ "project.name" : self .project .slug ,
4581
+ 'tags["flag.evaluation.feature.organizations:foo",number]' : 1 ,
4582
+ },
4583
+ ]
You can’t perform that action at this time.
0 commit comments