78ed677
From 6c127384b76f7534592dcb0d791f9580981f1afd Mon Sep 17 00:00:00 2001
78ed677
From: Lukas Holecek <hluk@email.cz>
78ed677
Date: Wed, 31 Jul 2019 10:25:43 +0200
78ed677
Subject: [PATCH] Fix start with delta parameter
78ed677
78ed677
Fixes #218
78ed677
78ed677
Signed-off-by: Lukas Holecek <hluk@email.cz>
78ed677
---
78ed677
 datagrepper/util.py |  3 ++-
78ed677
 tests/test_api.py   | 14 ++++++++++++++
78ed677
 2 files changed, 16 insertions(+), 1 deletion(-)
78ed677
78ed677
diff --git a/datagrepper/util.py b/datagrepper/util.py
78ed677
index 9696fef..330b12a 100644
78ed677
--- a/datagrepper/util.py
78ed677
+++ b/datagrepper/util.py
78ed677
@@ -54,7 +54,8 @@ def assemble_timerange(start, end, delta):
78ed677
             if start is None:
78ed677
                 end = float(now)
78ed677
             else:
78ed677
-                end = float(start) + float(delta)
78ed677
+                start = float(start)
78ed677
+                end = start + float(delta)
78ed677
 
78ed677
         end = datetime.fromtimestamp(float(end))
78ed677
 
78ed677
diff --git a/tests/test_api.py b/tests/test_api.py
78ed677
index fa731ea..5f49f44 100644
78ed677
--- a/tests/test_api.py
78ed677
+++ b/tests/test_api.py
78ed677
@@ -1,6 +1,7 @@
78ed677
 # SPDX-License-Identifier: GPL-2.0+
78ed677
 # Copyright 2018 Mike Bonnet <mikeb@redhat.com>
78ed677
 
78ed677
+from datetime import datetime, timedelta
78ed677
 import json
78ed677
 import os
78ed677
 import unittest
78ed677
@@ -47,6 +48,19 @@ def test_raw_contains_delta(self, grep):
78ed677
         resp = self.client.get('/raw?delta=14400&category=wat&contains=foo')
78ed677
         self.assertEqual(resp.status_code, 200)
78ed677
 
78ed677
+    @patch('datagrepper.app.dm.Message.grep', return_value=(0, 0, []))
78ed677
+    def test_raw_contains_delta_and_start(self, grep):
78ed677
+        resp = self.client.get('/raw?start=1564503781&delta=600')
78ed677
+        self.assertEqual(resp.status_code, 200)
78ed677
+        self.assertEqual(grep.call_args[0], ())
78ed677
+        kws = grep.call_args[1]
78ed677
+
78ed677
+        expected_start = datetime.fromtimestamp(1564503781)
78ed677
+        self.assertEqual(kws['start'], expected_start)
78ed677
+
78ed677
+        expected_end = expected_start + timedelta(seconds=600)
78ed677
+        self.assertEqual(kws['end'], expected_end)
78ed677
+
78ed677
     @patch('datagrepper.app.dm.Message.grep', return_value=(0, 0, []))
78ed677
     def test_raw_contains_without_delta(self, grep):
78ed677
         """ https://github.com/fedora-infra/datagrepper/issues/206 """