This is deprecated in Python 3.12.
Signed-off-by: Stephen Finucane <stephen@that.guru>
-import datetime
-
from django.conf import settings
from django.db import migrations, models
import django.db.migrations.operations.special
import django.db.models.deletion
+from django.utils import timezone as tz_utils
import patchwork.fields
import patchwork.models
),
(
'date',
- models.DateTimeField(default=datetime.datetime.utcnow),
+ models.DateTimeField(default=tz_utils.now),
),
(
'state',
('msgid', models.CharField(max_length=255)),
(
'date',
- models.DateTimeField(default=datetime.datetime.utcnow),
+ models.DateTimeField(default=tz_utils.now),
),
('headers', models.TextField(blank=True)),
('content', models.TextField(blank=True, null=True)),
(
'date',
models.DateTimeField(
- default=datetime.datetime.utcnow,
+ default=tz_utils.now,
help_text=b'The time this event was created.',
),
),
('key', patchwork.fields.HashField(max_length=40)),
(
'date',
- models.DateTimeField(default=datetime.datetime.utcnow),
+ models.DateTimeField(default=tz_utils.now),
),
('active', models.BooleanField(default=True)),
(
('msgid', models.CharField(max_length=255)),
(
'date',
- models.DateTimeField(default=datetime.datetime.utcnow),
+ models.DateTimeField(default=tz_utils.now),
),
('headers', models.TextField(blank=True)),
('content', models.TextField(blank=True, null=True)),
),
(
'last_modified',
- models.DateTimeField(default=datetime.datetime.utcnow),
+ models.DateTimeField(default=tz_utils.now),
),
],
),
-import datetime
-
from django.db import migrations, models
+from django.utils import timezone as tz_utils
class Migration(migrations.Migration):
migrations.AlterField(
model_name='check',
name='date',
- field=models.DateTimeField(default=datetime.datetime.utcnow),
+ field=models.DateTimeField(default=tz_utils.now),
),
migrations.AlterField(
model_name='comment',
name='date',
- field=models.DateTimeField(default=datetime.datetime.utcnow),
+ field=models.DateTimeField(default=tz_utils.now),
),
migrations.AlterField(
model_name='emailconfirmation',
name='date',
- field=models.DateTimeField(default=datetime.datetime.utcnow),
+ field=models.DateTimeField(default=tz_utils.now),
),
migrations.AlterField(
model_name='event',
name='date',
field=models.DateTimeField(
- default=datetime.datetime.utcnow,
+ default=tz_utils.now,
help_text=b'The time this event was created.',
),
),
migrations.AlterField(
model_name='patchchangenotification',
name='last_modified',
- field=models.DateTimeField(default=datetime.datetime.utcnow),
+ field=models.DateTimeField(default=tz_utils.now),
),
migrations.AlterField(
model_name='submission',
name='date',
- field=models.DateTimeField(default=datetime.datetime.utcnow),
+ field=models.DateTimeField(default=tz_utils.now),
),
]
#
# flake8: noqa
-import datetime
-
from django.conf import settings
from django.db import migrations, models
import django.db.models.deletion
+from django.utils import timezone as tz_utils
import patchwork.models
model_name='event',
name='date',
field=models.DateTimeField(
- default=datetime.datetime.utcnow,
+ default=tz_utils.now,
help_text='The time this event was created.',
),
),
-import datetime
-
from django.db import connection, migrations, models
import django.db.models.deletion
+from django.utils import timezone as tz_utils
+
import patchwork.models
('msgid', models.CharField(max_length=255)),
(
'date',
- models.DateTimeField(default=datetime.datetime.utcnow),
+ models.DateTimeField(default=tz_utils.now),
),
('headers', models.TextField(blank=True)),
('content', models.TextField(blank=True, null=True)),
('msgid', models.CharField(max_length=255)),
(
'date',
- models.DateTimeField(default=datetime.datetime.utcnow),
+ models.DateTimeField(default=tz_utils.now),
),
('headers', models.TextField(blank=True)),
('content', models.TextField(blank=True, null=True)),
from django.conf import settings
from django.contrib.auth.models import User
from django.core.exceptions import ValidationError
+from django.core.validators import validate_unicode_slug
from django.db import models
from django.urls import reverse
from django.utils.functional import cached_property
-from django.core.validators import validate_unicode_slug
+from django.utils import timezone as tz_utils
from patchwork.fields import HashField
from patchwork.hasher import hash_diff
# email metadata
msgid = models.CharField(max_length=255)
- date = models.DateTimeField(default=datetime.datetime.utcnow)
+ date = models.DateTimeField(default=tz_utils.now)
headers = models.TextField(blank=True)
# content
patch = models.ForeignKey(Patch, on_delete=models.CASCADE)
user = models.ForeignKey(User, on_delete=models.CASCADE)
- date = models.DateTimeField(default=datetime.datetime.utcnow)
+ date = models.DateTimeField(default=tz_utils.now)
state = models.SmallIntegerField(
choices=STATE_CHOICES,
help_text='The category of the event.',
)
date = models.DateTimeField(
- default=datetime.datetime.utcnow,
+ default=tz_utils.now,
help_text='The time this event was created.',
)
actor = models.ForeignKey(
email = models.CharField(max_length=200)
user = models.ForeignKey(User, null=True, on_delete=models.CASCADE)
key = HashField()
- date = models.DateTimeField(default=datetime.datetime.utcnow)
+ date = models.DateTimeField(default=tz_utils.now)
active = models.BooleanField(default=True)
def deactivate(self):
self.save()
def is_valid(self):
- return self.date + self.validity > datetime.datetime.utcnow()
+ return self.date + self.validity > tz_utils.now()
def save(self, *args, **kwargs):
limit = 1 << 32
primary_key=True,
on_delete=models.CASCADE,
)
- last_modified = models.DateTimeField(default=datetime.datetime.utcnow)
+ last_modified = models.DateTimeField(default=tz_utils.now)
orig_state = models.ForeignKey(State, on_delete=models.CASCADE)
from django.db.models import Count
from django.db.models import Q
from django.template.loader import render_to_string
+from django.utils import timezone as tz_utils
from patchwork.models import EmailConfirmation
from patchwork.models import EmailOptout
def send_notifications():
- date_limit = datetime.datetime.utcnow() - datetime.timedelta(
+ date_limit = tz_utils.now() - datetime.timedelta(
minutes=settings.NOTIFICATION_DELAY_MINUTES
)
Users whose registration confirmation has expired are removed.
"""
# expire any invalid confirmations
- q = Q(
- date__lt=datetime.datetime.utcnow() - EmailConfirmation.validity
- ) | Q(active=False)
+ q = Q(date__lt=tz_utils.now() - EmailConfirmation.validity) | Q(
+ active=False
+ )
EmailConfirmation.objects.filter(q).delete()
# remove inactive users with no pending confirmation
from django.contrib.auth.models import User
from django.db.utils import IntegrityError
from django.db import transaction
+from django.utils import timezone as tz_utils
from patchwork.models import Cover
from patchwork.models import CoverComment
def find_date(mail):
h = clean_header(mail.get('Date', ''))
if not h:
- return datetime.datetime.utcnow()
+ return tz_utils.now()
t = parsedate_tz(h)
if not t:
- return datetime.datetime.utcnow()
+ return tz_utils.now()
try:
d = datetime.datetime.utcfromtimestamp(mktime_tz(t))
# -> ValueError
# - Date:, 11 Sep 2016 407080403080105:04 +0100
# -> OSError (Python 3)
- d = datetime.datetime.utcnow()
+ d = tz_utils.now()
return d
#
# SPDX-License-Identifier: GPL-2.0-or-later
-from datetime import datetime as dt
-
from django.db.models.signals import post_save
from django.db.models.signals import pre_save
from django.dispatch import receiver
+from django.utils import timezone as tz_utils
from patchwork.models import Check
from patchwork.models import Cover
notification.delete()
return
- notification.last_modified = dt.utcnow()
+ notification.last_modified = tz_utils.now()
notification.save()
#
# SPDX-License-Identifier: GPL-2.0-or-later
-from datetime import datetime as dt
from datetime import timedelta
from django.test import TransactionTestCase
+from django.utils import timezone as tz_utils
from patchwork.models import Check
from patchwork.tests.utils import create_check
self.assertChecksEqual(self.patch, [check_a, check_b])
def test_checks__duplicate_checks(self):
- self._create_check(date=(dt.utcnow() - timedelta(days=1)))
+ self._create_check(date=(tz_utils.now() - timedelta(days=1)))
check = self._create_check()
# this isn't a realistic scenario (dates shouldn't be set by user so
# they will always increment), but it's useful to verify the removal
# of older duplicates by the function
- self._create_check(date=(dt.utcnow() - timedelta(days=2)))
+ self._create_check(date=(tz_utils.now() - timedelta(days=2)))
self.assertChecksEqual(self.patch, [check])
def test_checks__nultiple_users(self):
self.assertCheckCountEqual(self.patch, 1, {Check.STATE_SUCCESS: 1})
def test_check_count__multiple_checks(self):
- self._create_check(date=(dt.utcnow() - timedelta(days=1)))
+ self._create_check(date=(tz_utils.now() - timedelta(days=1)))
self._create_check(context='new/test1')
self.assertCheckCountEqual(self.patch, 2, {Check.STATE_SUCCESS: 2})
self.assertCheckCountEqual(self.patch, 2, {Check.STATE_SUCCESS: 2})
def test_check_count__duplicate_check_same_state(self):
- self._create_check(date=(dt.utcnow() - timedelta(days=1)))
+ self._create_check(date=(tz_utils.now() - timedelta(days=1)))
self.assertCheckCountEqual(self.patch, 1, {Check.STATE_SUCCESS: 1})
self._create_check()
self.assertCheckCountEqual(self.patch, 2, {Check.STATE_SUCCESS: 1})
def test_check_count__duplicate_check_new_state(self):
- self._create_check(date=(dt.utcnow() - timedelta(days=1)))
+ self._create_check(date=(tz_utils.now() - timedelta(days=1)))
self.assertCheckCountEqual(self.patch, 1, {Check.STATE_SUCCESS: 1})
self._create_check(state=Check.STATE_FAIL)
from django.contrib.auth.models import User
from django.test import TestCase
+from django.utils import timezone as tz_utils
from patchwork.models import EmailConfirmation
from patchwork.models import Patch
def test_old_registration_expiry(self):
date = (
- datetime.datetime.utcnow() - EmailConfirmation.validity
+ tz_utils.now() - EmailConfirmation.validity
) - datetime.timedelta(hours=1)
user, conf = self.register(date)
def test_recent_registration_expiry(self):
date = (
- datetime.datetime.utcnow() - EmailConfirmation.validity
+ tz_utils.now() - EmailConfirmation.validity
) + datetime.timedelta(hours=1)
user, conf = self.register(date)
self.assertTrue(EmailConfirmation.objects.filter(pk=conf.pk).exists())
def test_inactive_registration_expiry(self):
- user, conf = self.register(datetime.datetime.utcnow())
+ user, conf = self.register(tz_utils.now())
# confirm registration
conf.user.is_active = True
# ... then starts registration...
date = (
- datetime.datetime.utcnow() - EmailConfirmation.validity
+ tz_utils.now() - EmailConfirmation.validity
) - datetime.timedelta(hours=1)
user = create_user(link_person=False, email=submitter.email)
user.is_active = False
from django.conf import settings
from django.core import mail
from django.test import TestCase
+from django.utils import timezone as tz_utils
from patchwork.models import EmailOptout
from patchwork.models import PatchChangeNotification
self.project = create_project(send_notifications=True)
def _expire_notifications(self, **kwargs):
- timestamp = datetime.datetime.utcnow() - datetime.timedelta(
+ timestamp = tz_utils.now() - datetime.timedelta(
minutes=settings.NOTIFICATION_DELAY_MINUTES + 1
)
# SPDX-License-Identifier: GPL-2.0-or-later
import codecs
-from datetime import datetime as dt
from datetime import timedelta
from email.utils import make_msgid
import os
from django.contrib.auth.models import User
+from django.utils import timezone as tz_utils
from patchwork.models import Bundle
from patchwork.models import Check
values = {
'patch': create_patch() if 'patch' not in kwargs else None,
'user': create_user() if 'user' not in kwargs else None,
- 'date': dt.utcnow(),
+ 'date': tz_utils.now(),
'state': Check.STATE_SUCCESS,
'target_url': 'http://example.com/',
'description': '',
"""Create 'Series' object."""
values = {
'project': create_project() if 'project' not in kwargs else None,
- 'date': dt.utcnow(),
+ 'date': tz_utils.now(),
'submitter': create_person() if 'submitter' not in kwargs else None,
'total': 1,
}
'submitter': create_person() if 'submitter' not in kwargs else None,
}
values.update(kwargs)
- date = dt.utcnow()
+ date = tz_utils.now()
objects = []
for i in range(0, count):
from django.conf import settings
from django.test import TestCase
from django.urls import reverse
+from django.utils import timezone as tz_utils
from patchwork.models import Check
from patchwork.models import Patch
user=user,
context='foo',
state=Check.STATE_FAIL,
- date=(dt.utcnow() - timedelta(days=1)),
+ date=(tz_utils.now() - timedelta(days=1)),
)
create_check(
patch=patch, user=user, context='foo', state=Check.STATE_SUCCESS
from django.http import Http404
from django.test import TestCase
+from django.utils import timezone as tz_utils
from patchwork.tests.utils import create_patch
from patchwork.tests.utils import create_patch_comment
patch = create_patch()
offset = 3 * 60 * 60 # 3 (hours) * 60 (minutes) * 60 (seconds)
tz = dateutil.tz.tzoffset(None, offset)
- date = datetime.datetime.utcnow() - datetime.timedelta(days=1)
+ date = tz_utils.now() - datetime.timedelta(days=1)
date = date.replace(tzinfo=tz, microsecond=0)
patch.headers = 'Date: %s\n' % date.strftime("%a, %d %b %Y %T %z")