diff --git a/api/app_analytics/analytics_db_service.py b/api/app_analytics/analytics_db_service.py index 89a2236415a3..d8e6effd0b41 100644 --- a/api/app_analytics/analytics_db_service.py +++ b/api/app_analytics/analytics_db_service.py @@ -106,6 +106,7 @@ def get_feature_evaluation_data_from_local_db( FeatureEvaluationBucket.objects.filter( environment_id=environment_id, bucket_size=ANALYTICS_READ_BUCKET_SIZE, + feature_name=feature.name, created_at__date__lte=timezone.now(), created_at__date__gt=timezone.now() - timedelta(days=period), ) diff --git a/api/app_analytics/models.py b/api/app_analytics/models.py index 9a3df4f382e7..bbd57d3299b4 100644 --- a/api/app_analytics/models.py +++ b/api/app_analytics/models.py @@ -57,8 +57,9 @@ def check_overlapping_buckets(self, filters): if overlapping_buckets.exists(): raise ValidationError( - "Cannot create bucket starting at {self.created_at} with size {self.bucket_size} minutes," + "Cannot create bucket starting at %s with size %s minutes," "because it overlaps with existing buckets" + % (self.created_at, self.bucket_size), ) diff --git a/api/tests/unit/app_analytics/test_analytics_db_service.py b/api/tests/unit/app_analytics/test_analytics_db_service.py index 66953c005b3a..76f127bda0d3 100644 --- a/api/tests/unit/app_analytics/test_analytics_db_service.py +++ b/api/tests/unit/app_analytics/test_analytics_db_service.py @@ -15,6 +15,10 @@ ) from django.conf import settings from django.utils import timezone +from pytest_django.fixtures import SettingsWrapper + +from environments.models import Environment +from features.models import Feature @pytest.mark.skipif( @@ -138,7 +142,9 @@ def test_get_total_events_count(organisation, environment, settings): reason="Skip test if analytics database is configured", ) @pytest.mark.django_db(databases=["analytics", "default"]) -def test_get_feature_evaluation_data_from_local_db(feature, environment, settings): +def test_get_feature_evaluation_data_from_local_db( + feature: Feature, environment: Environment, settings: SettingsWrapper +): environment_id = environment.id feature_name = feature.name now = timezone.now() @@ -181,6 +187,15 @@ def test_get_feature_evaluation_data_from_local_db(feature, environment, setting created_at=now - timedelta(days=i), ) + # some data for different feature + FeatureEvaluationBucket.objects.create( + environment_id=environment_id, + feature_name="some_other_feature", + total_count=10, + bucket_size=read_bucket_size, + created_at=now - timedelta(days=i), + ) + # When usage_data_list = get_feature_evaluation_data_from_local_db(feature, environment_id)