Added possibility to choose the time range in which bot will search test results
PRODX-37645
Change-Id: I360a4df3805f222879b70e505e9d2adde3a0a012
diff --git a/testrail_bot/control/celery_tasks/testrail_pipeline.py b/testrail_bot/control/celery_tasks/testrail_pipeline.py
index f1e4bf0..d90f5e7 100644
--- a/testrail_bot/control/celery_tasks/testrail_pipeline.py
+++ b/testrail_bot/control/celery_tasks/testrail_pipeline.py
@@ -92,6 +92,7 @@
plan_name: str,
test_pattern: str,
created_by_id: int,
+ created_after: int,
created_before: int,
run_name: str,
text_filters: dict,
@@ -106,7 +107,9 @@
:param plan_name: The name of the test plan to search within
:param test_pattern: A pattern for filtering test runs
:param created_by_id: The ID of the user who created the test plan
- :param created_before: The date (timestamp) before which the test
+ :param created_after: The date (created_after) after which the test
+ plan was created
+ :param created_before: The date (created_before) before which the test
plan was created
:param run_name: The name of the test run
:param text_filters: A dictionary of text filters to apply when
@@ -118,7 +121,8 @@
"""
end_lookup_date = dt.strptime(
f"{created_before} 23:59:59", "%Y-%m-%d %H:%M:%S")
- start_lookup_date = end_lookup_date + timedelta(days=-3 * 30)
+ start_lookup_date = dt.strptime(
+ f"{created_after} 00:00:00", "%Y-%m-%d %H:%M:%S")
filters = {
"created_by": created_by_id,
"created_before": int(dt.timestamp(end_lookup_date)),
diff --git a/testrail_bot/control/forms.py b/testrail_bot/control/forms.py
index a7f28bb..0ad6c12 100644
--- a/testrail_bot/control/forms.py
+++ b/testrail_bot/control/forms.py
@@ -6,7 +6,9 @@
class TestRunForm(forms.ModelForm):
def __init__(self, *args, **kwargs):
super().__init__(*args, **kwargs)
- self.fields["timestamp"].widget = forms.SelectDateWidget(years=[
+ self.fields["created_after"].widget = forms.SelectDateWidget(years=[
+ date.today().year + i for i in range(-3, 5)])
+ self.fields["created_before"].widget = forms.SelectDateWidget(years=[
date.today().year + i for i in range(-3, 5)])
class Meta:
model = TestRailTestRun
@@ -23,10 +25,14 @@
"uuid_filter": "Mask all UUID with xxxx",
"filter_last_traceback": "Use only traceback to "
"compare comments",
- "timestamp": "Search for test plans created before this date"
+ "created_after": "Search in period from",
+ "created_before": "till",
+
}
help_texts = {
"filter_func": "Leave blank if not used",
+ "created_before": "at 23:59:59",
+ "created_after": "at 00:00:00",
}
diff --git a/testrail_bot/control/migrations/0004_rename_timestamp_testrailtestrun_created_before.py b/testrail_bot/control/migrations/0004_rename_timestamp_testrailtestrun_created_before.py
new file mode 100644
index 0000000..aee1b1f
--- /dev/null
+++ b/testrail_bot/control/migrations/0004_rename_timestamp_testrailtestrun_created_before.py
@@ -0,0 +1,24 @@
+# Generated by Django 4.2.7 on 2023-11-28 14:07
+
+import datetime
+from django.db import migrations, models
+
+
+class Migration(migrations.Migration):
+
+ dependencies = [
+ ('control', '0003_suitepassrate_diffofsuitespassrates'),
+ ]
+
+ operations = [
+ migrations.RenameField(
+ model_name='testrailtestrun',
+ old_name='timestamp',
+ new_name='created_before',
+ ),
+ migrations.AddField(
+ model_name='testrailtestrun',
+ name='created_after',
+ field=models.DateField(default=datetime.date(2023, 8, 30)),
+ ),
+ ]
diff --git a/testrail_bot/control/models.py b/testrail_bot/control/models.py
index 0956b1a..94bade9 100644
--- a/testrail_bot/control/models.py
+++ b/testrail_bot/control/models.py
@@ -43,7 +43,9 @@
ip_filter = models.BooleanField(default=True)
uuid_filter = models.BooleanField(default=True)
filter_last_traceback = models.BooleanField(default=False)
- timestamp = models.DateField(default=datetime.date.today())
+ created_before = models.DateField(default=datetime.date.today())
+ created_after = models.DateField(default=datetime.date.today() +
+ datetime.timedelta(days=-3*30))
@property
def text_filters(self):
@@ -58,7 +60,8 @@
def testrail_filters(self):
return {
"created_by_id": self.created_by_id,
- "created_before": self.timestamp,
+ "created_after": self.created_after,
+ "created_before": self.created_before,
"run_name": self.run_name,
"plan_name": self.plan_name,
"test_pattern": self.test_pattern,
diff --git a/testrail_bot/control/templates/control/update_run.html b/testrail_bot/control/templates/control/update_run.html
index 31c634a..3082fec 100644
--- a/testrail_bot/control/templates/control/update_run.html
+++ b/testrail_bot/control/templates/control/update_run.html
@@ -64,11 +64,14 @@
<div class="col-xs-8 small">
User to id list: <ul><li>os-qa-bot = <code>109</code></li></ul>
</div>
- <div class="col-xs-8">
- {% bootstrap_field form.timestamp size='sm' %}
+ <div class="col-sm-auto mx-3">
+ {% bootstrap_field form.created_after size='sm' %}
+ </div>
+ <div class="col-sm-auto mx-3">
+ {% bootstrap_field form.created_before size='sm' %}
</div>
</div>
- <div class=" p-3 mt-5 bg-light bg-gradient">
+ <div class="p-3 mt-5 bg-light bg-gradient">
<h5>Text filters</h5>
<div class="col-md-5">
{% bootstrap_field form.ip_filter size='sm'%}
diff --git a/testrail_bot/control/views.py b/testrail_bot/control/views.py
index 0ebdf41..7a34327 100644
--- a/testrail_bot/control/views.py
+++ b/testrail_bot/control/views.py
@@ -45,7 +45,9 @@
else:
form = forms.TestRunForm()
- form.fields["timestamp"].initial = datetime.date.today()
+ form.fields["created_after"].initial = datetime.date.today() + \
+ datetime.timedelta(days=-3 * 30)
+ form.fields["created_before"].initial = datetime.date.today()
return render(request, "control/update_run.html", {"form": form})