Jeremy White : Add a READ_ONLY flag to help with testing.
Alexandre Julliard
julliard at winehq.org
Thu Apr 28 10:56:35 CDT 2022
Module: tools
Branch: master
Commit: 25a13879d60b4d9c510942e13311d481c25d5b08
URL: https://source.winehq.org/git/tools.git/?a=commit;h=25a13879d60b4d9c510942e13311d481c25d5b08
Author: Jeremy White <jwhite at codeweavers.com>
Date: Thu Apr 28 06:45:57 2022 -0500
Add a READ_ONLY flag to help with testing.
Signed-off-by: Alexandre Julliard <julliard at winehq.org>
---
gitlab/gitlab-to-mail/example.cfg | 4 ++++
gitlab/gitlab-to-mail/gitlabtomail.py | 19 ++++++++++++-------
gitlab/gitlab-to-mail/util.py | 2 +-
3 files changed, 17 insertions(+), 8 deletions(-)
diff --git a/gitlab/gitlab-to-mail/example.cfg b/gitlab/gitlab-to-mail/example.cfg
index 19e877c..a0fc59d 100644
--- a/gitlab/gitlab-to-mail/example.cfg
+++ b/gitlab/gitlab-to-mail/example.cfg
@@ -6,6 +6,10 @@ DATABASE= "/home/wine/example/db_example.sqlite"
# if True mails are dumped to mail_dump mbox file instead of being sent out
DEBUG = False
+# If True, no writes are done to the database. This allows a particular
+# condition to be run again and again
+#READ_ONLY = False
+
# https://docs.gitlab.com/ce/user/profile/personal_access_tokens.html with API access
GITLAB_TOKEN = "secret"
GITLAB_URL = "https://gitlab.example.com/"
diff --git a/gitlab/gitlab-to-mail/gitlabtomail.py b/gitlab/gitlab-to-mail/gitlabtomail.py
index dfe72e2..19eafa3 100755
--- a/gitlab/gitlab-to-mail/gitlabtomail.py
+++ b/gitlab/gitlab-to-mail/gitlabtomail.py
@@ -540,7 +540,8 @@ def main():
last_mr_updated_at = db.get_last_mr_updated_at()
if not last_mr_updated_at:
last_mr_updated_at = datetime.datetime.now() - datetime.timedelta(days=settings.INITIAL_BACKLOG_DAYS)
- db.set_last_mr_updated_at(last_mr_updated_at)
+ if not settings.READ_ONLY:
+ db.set_last_mr_updated_at(last_mr_updated_at)
for mr in fetch_recently_updated_mrs(last_mr_updated_at):
iid = mr['iid']
@@ -575,7 +576,8 @@ def main():
if not error_in_notes(iid, error):
post_note(iid, error)
- db.set_last_mr_updated_at(updated_at)
+ if not settings.READ_ONLY:
+ db.set_last_mr_updated_at(updated_at)
continue
date = get_mr_version_date(versions, version)
@@ -599,15 +601,17 @@ def main():
mail['References'] = create_reference(mr['id'], gitlab_hostname)
log(f"MR{iid}v{version} - sent email")
send_email(mail)
- db.mark_mr_version_processed(iid, version)
- db.set_last_mr_updated_at(updated_at)
+ if not settings.READ_ONLY:
+ db.mark_mr_version_processed(iid, version)
+ db.set_last_mr_updated_at(updated_at)
else:
log(f"MR{iid}v{version} - skipping, already processed")
date = db.get_last_event_date()
if not date:
date = (datetime.datetime.now() - datetime.timedelta(days=settings.INITIAL_BACKLOG_DAYS)).date()
- db.set_last_event_date(date)
+ if not settings.READ_ONLY:
+ db.set_last_event_date(date)
date = date - datetime.timedelta(days=1)
last_event_id = db.get_last_event_id()
@@ -624,8 +628,9 @@ def main():
log(f"sending email {mail['Subject']}")
send_email(mail)
- db.set_last_event_date(parse_gitlab_datetime(event['created_at']).date())
- db.set_last_event_id(event['id'])
+ if not settings.READ_ONLY:
+ db.set_last_event_date(parse_gitlab_datetime(event['created_at']).date())
+ db.set_last_event_id(event['id'])
if __name__ == "__main__":
diff --git a/gitlab/gitlab-to-mail/util.py b/gitlab/gitlab-to-mail/util.py
index e37ead8..aef43c6 100644
--- a/gitlab/gitlab-to-mail/util.py
+++ b/gitlab/gitlab-to-mail/util.py
@@ -31,7 +31,7 @@ class Settings:
else:
self.__dict__[s] = None
- for s in ['DEBUG']:
+ for s in ['DEBUG', 'READ_ONLY']:
if s in self.cp['settings']:
self.__dict__[s] = self.cp['settings'].getboolean(s)
else:
More information about the wine-cvs
mailing list