fix: timezone fixes from last few comparisons with tzaware-obe
This commit is contained in:
parent
448cfbb13d
commit
a653582cf7
|
@ -2,13 +2,14 @@
|
|||
# -*- coding: utf-8 -*-
|
||||
|
||||
|
||||
import datetime
|
||||
import syslog
|
||||
|
||||
from django.core.management.base import BaseCommand
|
||||
|
||||
from ietf.nomcom.models import NomCom, NomineePosition
|
||||
from ietf.nomcom.utils import send_accept_reminder_to_nominee,send_questionnaire_reminder_to_nominee
|
||||
from ietf.utils.timezone import date_today
|
||||
|
||||
|
||||
def log(message):
|
||||
syslog.syslog(message)
|
||||
|
@ -27,10 +28,10 @@ class Command(BaseCommand):
|
|||
for nomcom in NomCom.objects.filter(group__state__slug='active'):
|
||||
nps = NomineePosition.objects.filter(nominee__nomcom=nomcom,nominee__duplicated__isnull=True)
|
||||
for nominee_position in nps.pending():
|
||||
if is_time_to_send(nomcom, datetime.date.today(), nominee_position.time.date()):
|
||||
if is_time_to_send(nomcom, date_today(), nominee_position.time.date()):
|
||||
send_accept_reminder_to_nominee(nominee_position)
|
||||
log('Sent accept reminder to %s' % nominee_position.nominee.email.address)
|
||||
for nominee_position in nps.accepted().without_questionnaire_response():
|
||||
if is_time_to_send(nomcom, datetime.date.today(), nominee_position.time.date()):
|
||||
if is_time_to_send(nomcom, date_today(), nominee_position.time.date()):
|
||||
send_questionnaire_reminder_to_nominee(nominee_position)
|
||||
log('Sent questionnaire reminder to %s' % nominee_position.nominee.email.address)
|
||||
|
|
|
@ -50,7 +50,7 @@ from ietf.stats.models import MeetingRegistration
|
|||
from ietf.stats.factories import MeetingRegistrationFactory
|
||||
from ietf.utils.mail import outbox, empty_outbox, get_payload_text
|
||||
from ietf.utils.test_utils import login_testing_unauthorized, TestCase, unicontent
|
||||
from ietf.utils.timezone import datetime_today, datetime_from_date, DEADLINE_TZINFO
|
||||
from ietf.utils.timezone import date_today, datetime_today, datetime_from_date, DEADLINE_TZINFO
|
||||
|
||||
|
||||
client_test_cert_files = None
|
||||
|
@ -1130,7 +1130,7 @@ class ReminderTest(TestCase):
|
|||
|
||||
def test_is_time_to_send(self):
|
||||
self.nomcom.reminder_interval = 4
|
||||
today = datetime.date.today()
|
||||
today = date_today()
|
||||
self.assertTrue(is_time_to_send(self.nomcom,today+datetime.timedelta(days=4),today))
|
||||
for delta in range(4):
|
||||
self.assertFalse(is_time_to_send(self.nomcom,today+datetime.timedelta(days=delta),today))
|
||||
|
@ -1236,7 +1236,7 @@ class InactiveNomcomTests(TestCase):
|
|||
self.assertIn( 'closed', q('.alert-warning').text())
|
||||
|
||||
def test_acceptance_closed(self):
|
||||
today = datetime.date.today().strftime('%Y%m%d')
|
||||
today = date_today().strftime('%Y%m%d')
|
||||
pid = self.nc.position_set.first().nomineeposition_set.order_by('pk').first().id
|
||||
url = reverse('ietf.nomcom.views.process_nomination_status', kwargs = {
|
||||
'year' : self.nc.year(),
|
||||
|
@ -1892,7 +1892,7 @@ Junk body for testing
|
|||
assert year >= 1990
|
||||
return (year-1985)*3+2
|
||||
# Create meetings to ensure we have the 'last 5'
|
||||
meeting_start = first_meeting_of_year(datetime.date.today().year-2)
|
||||
meeting_start = first_meeting_of_year(date_today().year-2)
|
||||
# Populate the meeting registration records
|
||||
for number in range(meeting_start, meeting_start+10):
|
||||
meeting = MeetingFactory.create(type_id='ietf', number=number)
|
||||
|
|
|
@ -33,7 +33,7 @@ from ietf.utils.pipe import pipe
|
|||
from ietf.utils.mail import send_mail_text, send_mail, get_payload_text
|
||||
from ietf.utils.log import log
|
||||
from ietf.person.name import unidecode_name
|
||||
from ietf.utils.timezone import datetime_from_date, datetime_today, DEADLINE_TZINFO
|
||||
from ietf.utils.timezone import date_today, datetime_from_date, datetime_today, DEADLINE_TZINFO
|
||||
|
||||
import debug # pyflakes:ignore
|
||||
|
||||
|
@ -240,7 +240,7 @@ def validate_public_key(public_key):
|
|||
|
||||
|
||||
def send_accept_reminder_to_nominee(nominee_position):
|
||||
today = datetime.date.today().strftime('%Y%m%d')
|
||||
today = date_today().strftime('%Y%m%d')
|
||||
subject = 'Reminder: please accept (or decline) your nomination.'
|
||||
domain = Site.objects.get_current().domain
|
||||
position = nominee_position.position
|
||||
|
@ -332,7 +332,7 @@ def make_nomineeposition(nomcom, candidate, position, author):
|
|||
from_email = settings.NOMCOM_FROM_EMAIL.format(year=nomcom.year())
|
||||
(to_email, cc) = gather_address_lists('nomination_new_nominee',nominee=nominee.email.address)
|
||||
domain = Site.objects.get_current().domain
|
||||
today = datetime.date.today().strftime('%Y%m%d')
|
||||
today = date_today().strftime('%Y%m%d')
|
||||
hash = get_hash_nominee_position(today, nominee_position.id)
|
||||
accept_url = reverse('ietf.nomcom.views.process_nomination_status',
|
||||
None,
|
||||
|
|
|
@ -45,6 +45,8 @@ from ietf.nomcom.utils import (get_nomcom_by_year, store_nomcom_private_key, sug
|
|||
from ietf.ietfauth.utils import role_required
|
||||
from ietf.person.models import Person
|
||||
from ietf.utils.response import permission_denied
|
||||
from ietf.utils.timezone import date_today
|
||||
|
||||
|
||||
import debug # pyflakes:ignore
|
||||
|
||||
|
@ -702,7 +704,7 @@ def process_nomination_status(request, year, nominee_position_id, state, date, h
|
|||
expiration_days = getattr(settings, 'DAYS_TO_EXPIRE_NOMINATION_LINK', None)
|
||||
if expiration_days:
|
||||
request_date = datetime.date(int(date[:4]), int(date[4:6]), int(date[6:]))
|
||||
if datetime.date.today() > (request_date + datetime.timedelta(days=settings.DAYS_TO_EXPIRE_NOMINATION_LINK)):
|
||||
if date_today() > (request_date + datetime.timedelta(days=expiration_days)):
|
||||
permission_denied(request, "Link expired.")
|
||||
|
||||
need_confirmation = True
|
||||
|
|
|
@ -8,6 +8,7 @@ import debug # pyflakes:ignore
|
|||
|
||||
from ietf.nomcom.utils import is_eligible
|
||||
from ietf.person.models import Alias
|
||||
from ietf.utils.timezone import date_today
|
||||
|
||||
register = template.Library()
|
||||
|
||||
|
@ -15,7 +16,7 @@ register = template.Library()
|
|||
@register.filter
|
||||
def is_nomcom_eligible(person, date=None):
|
||||
if date is None:
|
||||
date = datetime.date.today()
|
||||
date = date_today()
|
||||
return is_eligible(person=person, date=date)
|
||||
|
||||
|
||||
|
|
|
@ -10,6 +10,7 @@ from django.contrib import messages
|
|||
from django.db.models import Q
|
||||
from django.http import HttpResponse, Http404
|
||||
from django.shortcuts import render, get_object_or_404, redirect
|
||||
from django.utils import timezone
|
||||
|
||||
import debug # pyflakes:ignore
|
||||
|
||||
|
@ -76,7 +77,7 @@ def profile(request, email_or_name):
|
|||
persons = [ p for p in persons if p and p.id ]
|
||||
if not persons:
|
||||
raise Http404
|
||||
return render(request, 'person/profile.html', {'persons': persons, 'today':datetime.date.today()})
|
||||
return render(request, 'person/profile.html', {'persons': persons, 'today': timezone.now()})
|
||||
|
||||
|
||||
def photo(request, email_or_name):
|
||||
|
|
|
@ -25,6 +25,8 @@ from django.conf import settings
|
|||
from django.utils.encoding import force_bytes, force_str
|
||||
|
||||
from ietf.utils.mail import get_payload_text
|
||||
from ietf.utils.timezone import date_today
|
||||
|
||||
|
||||
def list_name_from_email(list_email):
|
||||
if not list_email.endswith("@ietf.org"):
|
||||
|
@ -51,7 +53,7 @@ def construct_query_urls(doc, team, query=None):
|
|||
|
||||
encoded_query = "?" + urlencode({
|
||||
"qdr": "c", # custom time frame
|
||||
"start_date": (datetime.date.today() - datetime.timedelta(days=180)).isoformat(),
|
||||
"start_date": (date_today() - datetime.timedelta(days=180)).isoformat(),
|
||||
"email_list": list_name,
|
||||
"q": "subject:({})".format(query),
|
||||
"as": "1", # this is an advanced search
|
||||
|
|
|
@ -2,8 +2,6 @@
|
|||
# -*- coding: utf-8 -*-
|
||||
|
||||
|
||||
import datetime
|
||||
|
||||
from simple_history.models import HistoricalRecords
|
||||
|
||||
from django.db import models
|
||||
|
@ -18,6 +16,8 @@ from ietf.name.models import ReviewTypeName, ReviewRequestStateName, ReviewResul
|
|||
ReviewAssignmentStateName, ReviewerQueuePolicyName
|
||||
from ietf.utils.validators import validate_regular_expression_string
|
||||
from ietf.utils.models import ForeignKey, OneToOneField
|
||||
from ietf.utils.timezone import date_today
|
||||
|
||||
|
||||
class ReviewerSettings(models.Model):
|
||||
"""Keeps track of admin data associated with a reviewer in a team."""
|
||||
|
@ -67,7 +67,7 @@ class UnavailablePeriod(models.Model):
|
|||
history = HistoricalRecords(history_change_reason_field=models.TextField(null=True))
|
||||
team = ForeignKey(Group, limit_choices_to=~models.Q(reviewteamsettings=None))
|
||||
person = ForeignKey(Person)
|
||||
start_date = models.DateField(default=datetime.date.today, null=True, help_text="Choose the start date so that you can still do a review if it's assigned just before the start date - this usually means you should mark yourself unavailable for assignment some time before you are actually away. The default is today.")
|
||||
start_date = models.DateField(default=date_today, null=True, help_text="Choose the start date so that you can still do a review if it's assigned just before the start date - this usually means you should mark yourself unavailable for assignment some time before you are actually away. The default is today.")
|
||||
end_date = models.DateField(blank=True, null=True, help_text="Leaving the end date blank means that the period continues indefinitely. You can end it later.")
|
||||
AVAILABILITY_CHOICES = [
|
||||
("canfinish", "Can do follow-ups"),
|
||||
|
@ -81,8 +81,7 @@ class UnavailablePeriod(models.Model):
|
|||
reason = models.TextField(verbose_name="Reason why reviewer is unavailable (Optional)", max_length=2048, blank=True, help_text="Provide (for the secretary's benefit) the reason why the review is unavailable", default='')
|
||||
|
||||
def state(self):
|
||||
import datetime
|
||||
today = datetime.date.today()
|
||||
today = date_today()
|
||||
if self.start_date is None or self.start_date <= today:
|
||||
if not self.end_date or today <= self.end_date:
|
||||
return "active"
|
||||
|
|
|
@ -32,7 +32,7 @@ from ietf.review.models import (ReviewRequest, ReviewAssignment, ReviewRequestSt
|
|||
from ietf.utils.mail import send_mail
|
||||
from ietf.doc.utils import extract_complete_replaces_ancestor_mapping_for_docs
|
||||
from ietf.utils import log
|
||||
from ietf.utils.timezone import datetime_today, DEADLINE_TZINFO
|
||||
from ietf.utils.timezone import date_today, datetime_today, DEADLINE_TZINFO
|
||||
|
||||
|
||||
# The origin date is used to have a single reference date for "every X days".
|
||||
|
@ -93,12 +93,12 @@ def no_review_from_teams_on_doc(doc, rev):
|
|||
|
||||
def unavailable_periods_to_list(past_days=14):
|
||||
return UnavailablePeriod.objects.filter(
|
||||
Q(end_date=None) | Q(end_date__gte=datetime.date.today() - datetime.timedelta(days=past_days)),
|
||||
Q(end_date=None) | Q(end_date__gte=date_today() - datetime.timedelta(days=past_days)),
|
||||
).order_by("start_date")
|
||||
|
||||
def current_unavailable_periods_for_reviewers(team):
|
||||
"""Return dict with currently active unavailable periods for reviewers."""
|
||||
today = datetime.date.today()
|
||||
today = date_today()
|
||||
|
||||
unavailable_period_qs = UnavailablePeriod.objects.filter(
|
||||
Q(end_date__gte=today) | Q(end_date=None),
|
||||
|
@ -877,7 +877,7 @@ def email_reviewer_reminder(assignment):
|
|||
review_request = assignment.review_request
|
||||
team = review_request.team
|
||||
|
||||
deadline_days = (review_request.deadline - datetime.date.today()).days
|
||||
deadline_days = (review_request.deadline - date_today(DEADLINE_TZINFO)).days
|
||||
|
||||
subject = "Reminder: deadline for review of {} in {} is {}".format(review_request.doc.name, team.acronym, review_request.deadline.isoformat())
|
||||
|
||||
|
@ -943,7 +943,7 @@ def email_secretary_reminder(assignment, secretary_role):
|
|||
review_request = assignment.review_request
|
||||
team = review_request.team
|
||||
|
||||
deadline_days = (review_request.deadline - datetime.date.today()).days
|
||||
deadline_days = (review_request.deadline - date_today(DEADLINE_TZINFO)).days
|
||||
|
||||
subject = "Reminder: deadline for review of {} in {} is {}".format(review_request.doc.name, team.acronym, review_request.deadline.isoformat())
|
||||
|
||||
|
|
|
@ -31,7 +31,7 @@ from ietf.secr.meetings.forms import ( BaseMeetingRoomFormSet, MeetingModelForm,
|
|||
from ietf.secr.sreq.views import get_initial_session
|
||||
from ietf.secr.utils.meeting import get_session, get_timeslot
|
||||
from ietf.mailtrigger.utils import gather_address_lists
|
||||
from ietf.utils.timezone import make_aware
|
||||
from ietf.utils.timezone import date_today, make_aware
|
||||
|
||||
|
||||
# prep for agenda changes
|
||||
|
@ -314,7 +314,7 @@ def blue_sheet_redirect(request):
|
|||
This is the generic blue sheet URL. It gets the next IETF meeting and redirects
|
||||
to the meeting specific URL.
|
||||
'''
|
||||
today = datetime.date.today()
|
||||
today = date_today()
|
||||
qs = Meeting.objects.filter(date__gt=today,type='ietf').order_by('date')
|
||||
if qs:
|
||||
meeting = qs[0]
|
||||
|
|
|
@ -27,6 +27,7 @@ from ietf.meeting.utils import add_event_info_to_session_qs
|
|||
|
||||
from ietf.secr.proceedings.forms import RecordingForm, RecordingEditForm
|
||||
from ietf.secr.proceedings.proc_utils import (create_recording)
|
||||
from ietf.utils.timezone import date_today
|
||||
|
||||
# -------------------------------------------------
|
||||
# Globals
|
||||
|
@ -154,7 +155,7 @@ def main(request):
|
|||
meetings = Meeting.objects.filter(type='ietf').order_by('-number')
|
||||
else:
|
||||
# select meetings still within the cutoff period
|
||||
today = datetime.date.today()
|
||||
today = date_today()
|
||||
meetings = [m for m in Meeting.objects.filter(type='ietf').order_by('-number') if m.get_submission_correction_date()>=today]
|
||||
|
||||
groups = get_my_groups(request.user)
|
||||
|
@ -165,7 +166,7 @@ def main(request):
|
|||
m.group = m.session_set.first().group
|
||||
|
||||
# we today's date to see if we're past the submissio cutoff
|
||||
today = datetime.date.today()
|
||||
today = date_today()
|
||||
|
||||
return render(request, 'proceedings/main.html',{
|
||||
'meetings': meetings,
|
||||
|
|
|
@ -16,6 +16,8 @@ from ietf.name.models import ConstraintName, TimerangeName
|
|||
from ietf.person.models import Person
|
||||
from ietf.secr.sreq.forms import SessionForm
|
||||
from ietf.utils.mail import outbox, empty_outbox, get_payload_text
|
||||
from ietf.utils.timezone import date_today
|
||||
|
||||
|
||||
from pyquery import PyQuery
|
||||
|
||||
|
@ -23,7 +25,7 @@ SECR_USER='secretary'
|
|||
|
||||
class SreqUrlTests(TestCase):
|
||||
def test_urls(self):
|
||||
MeetingFactory(type_id='ietf',date=datetime.date.today())
|
||||
MeetingFactory(type_id='ietf',date=date_today())
|
||||
|
||||
self.client.login(username="secretary", password="secretary+password")
|
||||
|
||||
|
@ -39,7 +41,7 @@ class SreqUrlTests(TestCase):
|
|||
|
||||
class SessionRequestTestCase(TestCase):
|
||||
def test_main(self):
|
||||
meeting = MeetingFactory(type_id='ietf', date=datetime.date.today())
|
||||
meeting = MeetingFactory(type_id='ietf', date=date_today())
|
||||
SessionFactory.create_batch(2, meeting=meeting, status_id='sched')
|
||||
SessionFactory.create_batch(2, meeting=meeting, status_id='disappr')
|
||||
# An additional unscheduled group comes from make_immutable_base_data
|
||||
|
@ -53,7 +55,7 @@ class SessionRequestTestCase(TestCase):
|
|||
self.assertEqual(len(unsched), 11)
|
||||
|
||||
def test_approve(self):
|
||||
meeting = MeetingFactory(type_id='ietf', date=datetime.date.today())
|
||||
meeting = MeetingFactory(type_id='ietf', date=date_today())
|
||||
ad = Person.objects.get(user__username='ad')
|
||||
area = RoleFactory(name_id='ad', person=ad, group__type_id='area').group
|
||||
mars = GroupFactory(parent=area, acronym='mars')
|
||||
|
@ -66,7 +68,7 @@ class SessionRequestTestCase(TestCase):
|
|||
self.assertEqual(SchedulingEvent.objects.filter(session=session).order_by('-id')[0].status_id, 'appr')
|
||||
|
||||
def test_cancel(self):
|
||||
meeting = MeetingFactory(type_id='ietf', date=datetime.date.today())
|
||||
meeting = MeetingFactory(type_id='ietf', date=date_today())
|
||||
ad = Person.objects.get(user__username='ad')
|
||||
area = RoleFactory(name_id='ad', person=ad, group__type_id='area').group
|
||||
session = SessionFactory(meeting=meeting, group__parent=area, group__acronym='mars', status_id='sched')
|
||||
|
@ -77,7 +79,7 @@ class SessionRequestTestCase(TestCase):
|
|||
self.assertEqual(SchedulingEvent.objects.filter(session=session).order_by('-id')[0].status_id, 'deleted')
|
||||
|
||||
def test_edit(self):
|
||||
meeting = MeetingFactory(type_id='ietf', date=datetime.date.today())
|
||||
meeting = MeetingFactory(type_id='ietf', date=date_today())
|
||||
mars = RoleFactory(name_id='chair', person__user__username='marschairman', group__acronym='mars').group
|
||||
group2 = GroupFactory()
|
||||
group3 = GroupFactory()
|
||||
|
@ -367,7 +369,7 @@ class SessionRequestTestCase(TestCase):
|
|||
self.assertEqual(len(mars.constraint_source_set.filter(name_id='conflict')), 0)
|
||||
|
||||
def test_tool_status(self):
|
||||
MeetingFactory(type_id='ietf', date=datetime.date.today())
|
||||
MeetingFactory(type_id='ietf', date=date_today())
|
||||
url = reverse('ietf.secr.sreq.views.tool_status')
|
||||
self.client.login(username="secretary", password="secretary+password")
|
||||
r = self.client.get(url)
|
||||
|
@ -438,7 +440,7 @@ class SubmitRequestCase(TestCase):
|
|||
MeetingFactory.reset_sequence(0)
|
||||
|
||||
def test_submit_request(self):
|
||||
meeting = MeetingFactory(type_id='ietf', date=datetime.date.today())
|
||||
meeting = MeetingFactory(type_id='ietf', date=date_today())
|
||||
ad = Person.objects.get(user__username='ad')
|
||||
area = RoleFactory(name_id='ad', person=ad, group__type_id='area').group
|
||||
group = GroupFactory(parent=area)
|
||||
|
@ -506,7 +508,7 @@ class SubmitRequestCase(TestCase):
|
|||
self.assertEqual(list(session.joint_with_groups.all()), [group3, group4])
|
||||
|
||||
def test_submit_request_invalid(self):
|
||||
MeetingFactory(type_id='ietf', date=datetime.date.today())
|
||||
MeetingFactory(type_id='ietf', date=date_today())
|
||||
ad = Person.objects.get(user__username='ad')
|
||||
area = RoleFactory(name_id='ad', person=ad, group__type_id='area').group
|
||||
group = GroupFactory(parent=area)
|
||||
|
@ -542,8 +544,8 @@ class SubmitRequestCase(TestCase):
|
|||
self.assertContains(r, 'Must provide data for all sessions')
|
||||
|
||||
def test_submit_request_check_constraints(self):
|
||||
m1 = MeetingFactory(type_id='ietf', date=datetime.date.today() - datetime.timedelta(days=100))
|
||||
MeetingFactory(type_id='ietf', date=datetime.date.today(),
|
||||
m1 = MeetingFactory(type_id='ietf', date=date_today() - datetime.timedelta(days=100))
|
||||
MeetingFactory(type_id='ietf', date=date_today(),
|
||||
group_conflicts=['chair_conflict', 'conflic2', 'conflic3'])
|
||||
ad = Person.objects.get(user__username='ad')
|
||||
area = RoleFactory(name_id='ad', person=ad, group__type_id='area').group
|
||||
|
@ -604,7 +606,7 @@ class SubmitRequestCase(TestCase):
|
|||
self.assertContains(r, "Cannot declare a conflict with the same group")
|
||||
|
||||
def test_request_notification(self):
|
||||
meeting = MeetingFactory(type_id='ietf', date=datetime.date.today())
|
||||
meeting = MeetingFactory(type_id='ietf', date=date_today())
|
||||
ad = Person.objects.get(user__username='ad')
|
||||
area = GroupFactory(type_id='area')
|
||||
RoleFactory(name_id='ad', person=ad, group=area)
|
||||
|
@ -807,7 +809,7 @@ class SubmitRequestCase(TestCase):
|
|||
class LockAppTestCase(TestCase):
|
||||
def setUp(self):
|
||||
super().setUp()
|
||||
self.meeting = MeetingFactory(type_id='ietf', date=datetime.date.today(),session_request_lock_message='locked')
|
||||
self.meeting = MeetingFactory(type_id='ietf', date=date_today(),session_request_lock_message='locked')
|
||||
self.group = GroupFactory(acronym='mars')
|
||||
RoleFactory(name_id='chair', group=self.group, person__user__username='marschairman')
|
||||
SessionFactory(group=self.group,meeting=self.meeting)
|
||||
|
@ -853,7 +855,7 @@ class LockAppTestCase(TestCase):
|
|||
|
||||
class NotMeetingCase(TestCase):
|
||||
def test_not_meeting(self):
|
||||
MeetingFactory(type_id='ietf',date=datetime.date.today())
|
||||
MeetingFactory(type_id='ietf',date=date_today())
|
||||
group = GroupFactory(acronym='mars')
|
||||
url = reverse('ietf.secr.sreq.views.no_session',kwargs={'acronym':group.acronym})
|
||||
self.client.login(username="secretary", password="secretary+password")
|
||||
|
|
|
@ -8,14 +8,13 @@ from pyquery import PyQuery
|
|||
import debug # pyflakes:ignore
|
||||
|
||||
from django.urls import reverse
|
||||
from django.utils import timezone
|
||||
|
||||
from ietf.doc.factories import (WgDraftFactory, IndividualRfcFactory, CharterFactory,
|
||||
IndividualDraftFactory, ConflictReviewFactory)
|
||||
from ietf.doc.models import BallotDocEvent, BallotType, BallotPositionDocEvent, State, Document
|
||||
from ietf.doc.utils import update_telechat, create_ballot_if_not_open
|
||||
from ietf.utils.test_utils import TestCase
|
||||
from ietf.utils.timezone import datetime_today
|
||||
from ietf.utils.timezone import date_today, datetime_today
|
||||
from ietf.iesg.models import TelechatDate
|
||||
from ietf.person.models import Person
|
||||
from ietf.person.factories import PersonFactory
|
||||
|
@ -24,7 +23,7 @@ from ietf.secr.telechat.views import get_next_telechat_date
|
|||
SECR_USER='secretary'
|
||||
|
||||
def augment_data():
|
||||
TelechatDate.objects.create(date=timezone.now())
|
||||
TelechatDate.objects.create(date=date_today())
|
||||
|
||||
class SecrTelechatTestCase(TestCase):
|
||||
def test_main(self):
|
||||
|
@ -140,7 +139,7 @@ class SecrTelechatTestCase(TestCase):
|
|||
self.assertEqual(q("#telechat-positions-table").find("th:contains('No Record')").length,1)
|
||||
|
||||
def test_bash(self):
|
||||
today = timezone.now()
|
||||
today = date_today()
|
||||
TelechatDate.objects.create(date=today)
|
||||
url = reverse('ietf.secr.telechat.views.bash',kwargs={'date':today.strftime('%Y-%m-%d')})
|
||||
self.client.login(username="secretary", password="secretary+password")
|
||||
|
|
|
@ -20,6 +20,8 @@ from ietf.iesg.models import TelechatDate, TelechatAgendaItem, Telechat
|
|||
from ietf.iesg.agenda import agenda_data, get_doc_section
|
||||
from ietf.ietfauth.utils import role_required
|
||||
from ietf.secr.telechat.forms import BallotForm, ChangeStateForm, DateSelectForm, TELECHAT_TAGS
|
||||
from ietf.utils.timezone import date_today
|
||||
|
||||
|
||||
'''
|
||||
EXPECTED CHANGES:
|
||||
|
@ -80,14 +82,14 @@ def get_last_telechat_date():
|
|||
This function returns the date of the last telechat
|
||||
Tried TelechatDocEvent.objects.latest but that will return today's telechat
|
||||
'''
|
||||
return TelechatDate.objects.filter(date__lt=datetime.date.today()).order_by('-date')[0].date
|
||||
return TelechatDate.objects.filter(date__lt=date_today()).order_by('-date')[0].date
|
||||
#return '2011-11-01' # uncomment for testing
|
||||
|
||||
def get_next_telechat_date():
|
||||
'''
|
||||
This function returns the date of the next telechat
|
||||
'''
|
||||
return TelechatDate.objects.filter(date__gte=datetime.date.today()).order_by('date')[0].date
|
||||
return TelechatDate.objects.filter(date__gte=date_today()).order_by('date')[0].date
|
||||
|
||||
def get_section_header(doc, agenda):
|
||||
'''
|
||||
|
|
|
@ -29,6 +29,7 @@ from ietf.name.models import FormalLanguageName, DocRelationshipName, CountryNam
|
|||
from ietf.review.factories import ReviewRequestFactory, ReviewerSettingsFactory, ReviewAssignmentFactory
|
||||
from ietf.stats.models import MeetingRegistration, CountryAlias
|
||||
from ietf.stats.utils import get_meeting_registration_data
|
||||
from ietf.utils.timezone import date_today
|
||||
|
||||
|
||||
class StatisticsTests(TestCase):
|
||||
|
@ -122,7 +123,7 @@ class StatisticsTests(TestCase):
|
|||
|
||||
def test_meeting_stats(self):
|
||||
# create some data for the statistics
|
||||
meeting = MeetingFactory(type_id='ietf', date=datetime.date.today(), number="96")
|
||||
meeting = MeetingFactory(type_id='ietf', date=date_today(), number="96")
|
||||
MeetingRegistration.objects.create(first_name='John', last_name='Smith', country_code='US', email="john.smith@example.us", meeting=meeting, attended=True)
|
||||
CountryAlias.objects.get_or_create(alias="US", country=CountryName.objects.get(slug="US"))
|
||||
MeetingRegistration.objects.create(first_name='Jaume', last_name='Guillaume', country_code='FR', email="jaume.guillaume@example.fr", meeting=meeting, attended=True)
|
||||
|
@ -198,7 +199,7 @@ class StatisticsTests(TestCase):
|
|||
self.assertTrue(q('.review-stats td:contains("1")'))
|
||||
|
||||
# check stacked chart
|
||||
expected_date = datetime.date.today().replace(day=1)
|
||||
expected_date = date_today().replace(day=1)
|
||||
expected_js_timestamp = calendar.timegm(expected_date.timetuple()) * 1000
|
||||
url = urlreverse(ietf.stats.views.review_stats, kwargs={ "stats_type": "time" })
|
||||
url += "?team={}".format(review_req.team.acronym)
|
||||
|
|
|
@ -641,7 +641,7 @@ def document_stats(request, stats_type=None):
|
|||
template_name = "yearly"
|
||||
|
||||
years_from = from_time.year if from_time else 1
|
||||
years_to = datetime.date.today().year - 1
|
||||
years_to = timezone.now().year - 1
|
||||
|
||||
|
||||
if stats_type == "yearly/affiliation":
|
||||
|
@ -904,7 +904,7 @@ def meeting_stats(request, num=None, stats_type=None):
|
|||
|
||||
continents = {}
|
||||
|
||||
meetings = Meeting.objects.filter(type='ietf', date__lte=datetime.date.today()).order_by('number')
|
||||
meetings = Meeting.objects.filter(type='ietf', date__lte=date_today()).order_by('number')
|
||||
for m in meetings:
|
||||
country = CountryName.objects.get(slug=m.country)
|
||||
continents[country.continent.name] = country.continent.name
|
||||
|
|
|
@ -7,7 +7,6 @@ import os
|
|||
import re
|
||||
import datetime
|
||||
import email
|
||||
import pytz
|
||||
import sys
|
||||
import tempfile
|
||||
import xml2rfc
|
||||
|
@ -43,6 +42,7 @@ from ietf.submit.parsers.xml_parser import XMLParser
|
|||
from ietf.utils import log
|
||||
from ietf.utils.draft import PlaintextDraft
|
||||
from ietf.utils.text import normalize_text
|
||||
from ietf.utils.timezone import date_today
|
||||
from ietf.utils.xmldraft import XMLDraft, XMLParseError
|
||||
|
||||
|
||||
|
@ -80,7 +80,7 @@ class SubmissionBaseUploadForm(forms.Form):
|
|||
self.base_formats = None # None will raise an exception in clean() if this isn't changed in a subclass
|
||||
|
||||
def set_cutoff_warnings(self):
|
||||
now = timezone.now().astimezone(pytz.utc)
|
||||
now = timezone.now()
|
||||
meeting = Meeting.get_current_meeting()
|
||||
if not meeting:
|
||||
return
|
||||
|
@ -573,7 +573,7 @@ class DeprecatedSubmissionBaseUploadForm(SubmissionBaseUploadForm):
|
|||
raise forms.ValidationError(mark_safe(self.cutoff_warning))
|
||||
|
||||
# check thresholds
|
||||
today = datetime.date.today()
|
||||
today = date_today()
|
||||
|
||||
self.check_submissions_thresholds(
|
||||
"for the draft %s" % self.filename,
|
||||
|
|
|
@ -28,6 +28,8 @@ from ietf.utils.accesstoken import generate_access_token
|
|||
from ietf.mailtrigger.utils import gather_address_lists, get_base_submission_message_address
|
||||
from ietf.submit.models import SubmissionEmailEvent, Submission
|
||||
from ietf.submit.checkers import DraftIdnitsChecker
|
||||
from ietf.utils.timezone import date_today
|
||||
|
||||
|
||||
def send_submission_confirmation(request, submission, chair_notice=False):
|
||||
subject = 'Confirm submission of I-D %s' % submission.name
|
||||
|
@ -299,7 +301,7 @@ def add_submission_email(request, remote_ip, name, rev, submission_pk, message,
|
|||
rev=rev,
|
||||
title=name,
|
||||
note="",
|
||||
submission_date=datetime.date.today(),
|
||||
submission_date=date_today(),
|
||||
replaces="",
|
||||
)
|
||||
from ietf.submit.utils import create_submission_event, docevent_from_submission
|
||||
|
|
|
@ -3,7 +3,6 @@
|
|||
|
||||
|
||||
import re
|
||||
import datetime
|
||||
import debug # pyflakes:ignore
|
||||
|
||||
from typing import List, Optional # pyflakes:ignore
|
||||
|
@ -12,6 +11,8 @@ from django.conf import settings
|
|||
from django.template.defaultfilters import filesizeformat
|
||||
|
||||
from ietf.utils.mime import get_mime_type
|
||||
from ietf.utils.timezone import date_today
|
||||
|
||||
|
||||
class MetaData(object):
|
||||
rev = None
|
||||
|
@ -60,7 +61,7 @@ class FileParser(object):
|
|||
self.parse_max_size();
|
||||
self.parse_filename_extension()
|
||||
self.parse_file_type()
|
||||
self.parsed_info.metadata.submission_date = datetime.date.today()
|
||||
self.parsed_info.metadata.submission_date = date_today()
|
||||
return self.parsed_info
|
||||
|
||||
def parse_invalid_chars_in_filename(self):
|
||||
|
|
|
@ -52,6 +52,7 @@ from ietf.utils.accesstoken import generate_access_token
|
|||
from ietf.utils.mail import outbox, empty_outbox, get_payload_text
|
||||
from ietf.utils.models import VersionInfo
|
||||
from ietf.utils.test_utils import login_testing_unauthorized, TestCase
|
||||
from ietf.utils.timezone import date_today
|
||||
from ietf.utils.draft import PlaintextDraft
|
||||
|
||||
|
||||
|
@ -91,7 +92,7 @@ class BaseSubmitTestCase(TestCase):
|
|||
return settings.INTERNET_DRAFT_ARCHIVE_DIR
|
||||
|
||||
def submission_file(name_in_doc, name_in_post, group, templatename, author=None, email=None, title=None, year=None, ascii=True):
|
||||
_today = datetime.date.today()
|
||||
_today = date_today()
|
||||
# construct appropriate text draft
|
||||
f = io.open(os.path.join(settings.BASE_DIR, "submit", templatename))
|
||||
template = f.read()
|
||||
|
@ -146,7 +147,7 @@ def create_draft_submission_with_rev_mismatch(rev='01'):
|
|||
sub = Submission.objects.create(
|
||||
name=draft_name,
|
||||
group=None,
|
||||
submission_date=datetime.date.today() - datetime.timedelta(days=1),
|
||||
submission_date=date_today() - datetime.timedelta(days=1),
|
||||
rev=rev,
|
||||
state_id='posted',
|
||||
)
|
||||
|
@ -164,7 +165,7 @@ class SubmitTests(BaseSubmitTestCase):
|
|||
def setUp(self):
|
||||
super().setUp()
|
||||
# Submit views assume there is a "next" IETF to look for cutoff dates against
|
||||
MeetingFactory(type_id='ietf', date=datetime.date.today()+datetime.timedelta(days=180))
|
||||
MeetingFactory(type_id='ietf', date=date_today()+datetime.timedelta(days=180))
|
||||
|
||||
def create_and_post_submission(self, name, rev, author, group=None, formats=("txt",), base_filename=None):
|
||||
"""Helper to create and post a submission
|
||||
|
@ -1355,7 +1356,7 @@ class SubmitTests(BaseSubmitTestCase):
|
|||
# edit
|
||||
mailbox_before = len(outbox)
|
||||
# FIXME If this test is started before midnight, and ends after, it will fail
|
||||
document_date = datetime.date.today() - datetime.timedelta(days=-3)
|
||||
document_date = date_today() - datetime.timedelta(days=-3)
|
||||
r = self.client.post(edit_url, {
|
||||
"edit-title": "some title",
|
||||
"edit-rev": "00",
|
||||
|
@ -1523,7 +1524,7 @@ class SubmitTests(BaseSubmitTestCase):
|
|||
def test_expire_submissions(self):
|
||||
s = Submission.objects.create(name="draft-ietf-mars-foo",
|
||||
group=None,
|
||||
submission_date=datetime.date.today() - datetime.timedelta(days=10),
|
||||
submission_date=date_today() - datetime.timedelta(days=10),
|
||||
rev="00",
|
||||
state_id="uploaded")
|
||||
|
||||
|
@ -1557,7 +1558,7 @@ class SubmitTests(BaseSubmitTestCase):
|
|||
|
||||
# Put today in the blackout period
|
||||
meeting = Meeting.get_current_meeting()
|
||||
meeting.importantdate_set.create(name_id='idcutoff',date=datetime.date.today()-datetime.timedelta(days=2))
|
||||
meeting.importantdate_set.create(name_id='idcutoff',date=date_today()-datetime.timedelta(days=2))
|
||||
|
||||
# regular user, no access
|
||||
r = self.client.get(url)
|
||||
|
@ -1576,30 +1577,30 @@ class SubmitTests(BaseSubmitTestCase):
|
|||
url = urlreverse('ietf.submit.views.upload_submission')
|
||||
|
||||
meeting = Meeting.get_current_meeting()
|
||||
meeting.date = datetime.date.today()+datetime.timedelta(days=7)
|
||||
meeting.date = date_today()+datetime.timedelta(days=7)
|
||||
meeting.save()
|
||||
meeting.importantdate_set.filter(name_id='idcutoff').delete()
|
||||
meeting.importantdate_set.create(name_id='idcutoff', date=datetime.date.today()+datetime.timedelta(days=7))
|
||||
meeting.importantdate_set.create(name_id='idcutoff', date=date_today()+datetime.timedelta(days=7))
|
||||
r = self.client.get(url)
|
||||
self.assertEqual(r.status_code,200)
|
||||
q = PyQuery(r.content)
|
||||
self.assertEqual(len(q('input[type=file][name=txt]')), 1)
|
||||
|
||||
meeting = Meeting.get_current_meeting()
|
||||
meeting.date = datetime.date.today()
|
||||
meeting.date = date_today()
|
||||
meeting.save()
|
||||
meeting.importantdate_set.filter(name_id='idcutoff').delete()
|
||||
meeting.importantdate_set.create(name_id='idcutoff', date=datetime.date.today())
|
||||
meeting.importantdate_set.create(name_id='idcutoff', date=date_today())
|
||||
r = self.client.get(url)
|
||||
self.assertEqual(r.status_code,200)
|
||||
q = PyQuery(r.content)
|
||||
self.assertEqual(len(q('input[type=file][name=txt]')), 1)
|
||||
|
||||
meeting = Meeting.get_current_meeting()
|
||||
meeting.date = datetime.date.today()-datetime.timedelta(days=1)
|
||||
meeting.date = date_today()-datetime.timedelta(days=1)
|
||||
meeting.save()
|
||||
meeting.importantdate_set.filter(name_id='idcutoff').delete()
|
||||
meeting.importantdate_set.create(name_id='idcutoff', date=datetime.date.today()-datetime.timedelta(days=1))
|
||||
meeting.importantdate_set.create(name_id='idcutoff', date=date_today()-datetime.timedelta(days=1))
|
||||
r = self.client.get(url)
|
||||
self.assertEqual(r.status_code,200)
|
||||
q = PyQuery(r.content)
|
||||
|
@ -1864,7 +1865,7 @@ class SubmitTests(BaseSubmitTestCase):
|
|||
self.index += 1
|
||||
sub = Submission.objects.create(name="draft-ietf-mars-bar-%d" % self.index,
|
||||
group=Group.objects.get(acronym="mars"),
|
||||
submission_date=datetime.date.today(),
|
||||
submission_date=date_today(),
|
||||
authors=[dict(name=self.author.name,
|
||||
email=self.author.user.email,
|
||||
affiliation='affiliation',
|
||||
|
@ -2136,17 +2137,17 @@ class ApprovalsTestCase(BaseSubmitTestCase):
|
|||
|
||||
Submission.objects.create(name="draft-ietf-mars-foo",
|
||||
group=Group.objects.get(acronym="mars"),
|
||||
submission_date=datetime.date.today(),
|
||||
submission_date=date_today(),
|
||||
rev="00",
|
||||
state_id="posted")
|
||||
Submission.objects.create(name="draft-ietf-mars-bar",
|
||||
group=Group.objects.get(acronym="mars"),
|
||||
submission_date=datetime.date.today(),
|
||||
submission_date=date_today(),
|
||||
rev="00",
|
||||
state_id="grp-appr")
|
||||
Submission.objects.create(name="draft-ietf-mars-quux",
|
||||
group=Group.objects.get(acronym="mars"),
|
||||
submission_date=datetime.date.today(),
|
||||
submission_date=date_today(),
|
||||
rev="00",
|
||||
state_id="ad-appr")
|
||||
|
||||
|
@ -2295,11 +2296,11 @@ class ManualPostsTestCase(BaseSubmitTestCase):
|
|||
|
||||
Submission.objects.create(name="draft-ietf-mars-foo",
|
||||
group=Group.objects.get(acronym="mars"),
|
||||
submission_date=datetime.date.today(),
|
||||
submission_date=date_today(),
|
||||
state_id="manual")
|
||||
Submission.objects.create(name="draft-ietf-mars-bar",
|
||||
group=Group.objects.get(acronym="mars"),
|
||||
submission_date=datetime.date.today(),
|
||||
submission_date=date_today(),
|
||||
rev="00",
|
||||
state_id="grp-appr")
|
||||
|
||||
|
@ -2885,7 +2886,7 @@ class ApiSubmissionTests(BaseSubmitTestCase):
|
|||
|
||||
class SubmissionUploadFormTests(BaseSubmitTestCase):
|
||||
def test_check_submission_thresholds(self):
|
||||
today = datetime.date.today()
|
||||
today = date_today()
|
||||
yesterday = today - datetime.timedelta(days=1)
|
||||
(this_group, that_group) = GroupFactory.create_batch(2, type_id='wg')
|
||||
this_ip = '10.0.0.1'
|
||||
|
@ -3101,7 +3102,7 @@ class AsyncSubmissionTests(BaseSubmitTestCase):
|
|||
"""Tests of async submission-related tasks"""
|
||||
def test_process_uploaded_submission(self):
|
||||
"""process_uploaded_submission should properly process a submission"""
|
||||
_today = datetime.date.today()
|
||||
_today = date_today()
|
||||
xml, author = submission_file('draft-somebody-test-00', 'draft-somebody-test-00.xml', None, 'test_submission.xml')
|
||||
xml_data = xml.read()
|
||||
xml.close()
|
||||
|
@ -3389,7 +3390,7 @@ class ApiSubmitTests(BaseSubmitTestCase):
|
|||
super().setUp()
|
||||
# break early in case of missing configuration
|
||||
self.assertTrue(os.path.exists(settings.IDSUBMIT_IDNITS_BINARY))
|
||||
MeetingFactory(type_id='ietf', date=datetime.date.today()+datetime.timedelta(days=60))
|
||||
MeetingFactory(type_id='ietf', date=date_today()+datetime.timedelta(days=60))
|
||||
|
||||
def do_post_submission(self, rev, author=None, name=None, group=None, email=None, title=None, year=None):
|
||||
url = urlreverse('ietf.submit.views.api_submit')
|
||||
|
|
|
@ -48,6 +48,7 @@ from ietf.utils.accesstoken import generate_random_key
|
|||
from ietf.utils.draft import PlaintextDraft
|
||||
from ietf.utils.mail import is_valid_email
|
||||
from ietf.utils.text import parse_unicode, normalize_text
|
||||
from ietf.utils.timezone import date_today
|
||||
from ietf.utils.xmldraft import XMLDraft
|
||||
from ietf.person.name import unidecode_name
|
||||
|
||||
|
@ -726,7 +727,7 @@ def recently_approved_by_user(user, since):
|
|||
)
|
||||
|
||||
def expirable_submissions(older_than_days):
|
||||
cutoff = datetime.date.today() - datetime.timedelta(days=older_than_days)
|
||||
cutoff = date_today() - datetime.timedelta(days=older_than_days)
|
||||
return Submission.objects.exclude(state__in=("cancel", "posted")).filter(submission_date__lt=cutoff)
|
||||
|
||||
def expire_submission(submission, by):
|
||||
|
@ -849,7 +850,7 @@ def fill_in_submission(form, submission, authors, abstract, file_size):
|
|||
submission.file_size = file_size
|
||||
submission.file_types = ','.join(form.file_types)
|
||||
submission.xml_version = form.xml_version
|
||||
submission.submission_date = datetime.date.today()
|
||||
submission.submission_date = date_today()
|
||||
submission.replaces = ""
|
||||
if form.parsed_draft is not None:
|
||||
submission.pages = form.parsed_draft.get_pagecount()
|
||||
|
|
|
@ -48,6 +48,8 @@ from ietf.utils.accesstoken import generate_access_token
|
|||
from ietf.utils.log import log
|
||||
from ietf.utils.mail import parseaddr, send_mail_message
|
||||
from ietf.utils.response import permission_denied
|
||||
from ietf.utils.timezone import date_today
|
||||
|
||||
|
||||
def upload_submission(request):
|
||||
if request.method == 'POST':
|
||||
|
@ -723,7 +725,7 @@ def approvals(request):
|
|||
preapprovals = preapprovals_for_user(request.user)
|
||||
|
||||
days = 30
|
||||
recently_approved = recently_approved_by_user(request.user, datetime.date.today() - datetime.timedelta(days=days))
|
||||
recently_approved = recently_approved_by_user(request.user, date_today() - datetime.timedelta(days=days))
|
||||
|
||||
return render(request, 'submit/approvals.html',
|
||||
{'selected': 'approvals',
|
||||
|
|
|
@ -62,7 +62,7 @@
|
|||
</tbody>
|
||||
</table>
|
||||
{% else %}
|
||||
<p>{{ person.first_name }} has no active roles as of {{ today }}.</p>
|
||||
<p>{{ person.first_name }} has no active roles as of {{ today|date:"Y-m-d" }}.</p>
|
||||
{% endif %}
|
||||
{% endif %}
|
||||
{% if person.personextresource_set.exists %}
|
||||
|
@ -123,7 +123,7 @@
|
|||
</tbody>
|
||||
</table>
|
||||
{% else %}
|
||||
{{ person.first_name }} has no RFCs as of {{ today }}.
|
||||
{{ person.first_name }} has no RFCs as of {{ today|date:"Y-m-d" }}.
|
||||
{% endif %}
|
||||
<h2 class="mt-5" id="drafts-{{ forloop.counter }}">
|
||||
Active Drafts <small class="text-muted">({{ person.active_drafts|length }})</small>
|
||||
|
@ -137,7 +137,7 @@
|
|||
{% endfor %}
|
||||
</ul>
|
||||
{% else %}
|
||||
{{ person.first_name }} has no active drafts as of {{ today }}.
|
||||
{{ person.first_name }} has no active drafts as of {{ today|date:"Y-m-d" }}.
|
||||
{% endif %}
|
||||
<h2 class="mt-5">
|
||||
Expired Drafts <small class="text-muted">({{ person.expired_drafts|length }})</small>
|
||||
|
@ -156,7 +156,7 @@
|
|||
</ul>
|
||||
(Excluding replaced drafts.)
|
||||
{% else %}
|
||||
{{ person.first_name }} has no expired drafts as of {{ today }}.
|
||||
{{ person.first_name }} has no expired drafts as of {{ today|date:"Y-m-d" }}.
|
||||
{% endif %}
|
||||
{% if person.has_drafts %}
|
||||
<h2 class="mt-5">
|
||||
|
|
|
@ -21,6 +21,7 @@ from ietf.person.models import Person, Email
|
|||
from ietf.group.utils import setup_default_community_list_for_group
|
||||
from ietf.review.models import (ReviewRequest, ReviewerSettings, ReviewResultName, ReviewTypeName, ReviewTeamSettings )
|
||||
from ietf.person.name import unidecode_name
|
||||
from ietf.utils.timezone import date_today
|
||||
|
||||
|
||||
def create_person(group, role_name, name=None, username=None, email_address=None, password=None, is_staff=False, is_superuser=False):
|
||||
|
@ -52,7 +53,7 @@ def make_immutable_base_data():
|
|||
all tests in a run."""
|
||||
|
||||
# telechat dates
|
||||
t = datetime.date.today() + datetime.timedelta(days=1)
|
||||
t = date_today() + datetime.timedelta(days=1)
|
||||
old = TelechatDate.objects.create(date=t - datetime.timedelta(days=14)).date # pyflakes:ignore
|
||||
date1 = TelechatDate.objects.create(date=t).date # pyflakes:ignore
|
||||
date2 = TelechatDate.objects.create(date=t + datetime.timedelta(days=14)).date # pyflakes:ignore
|
||||
|
@ -365,7 +366,7 @@ def make_test_data():
|
|||
ietf72 = Meeting.objects.create(
|
||||
number="72",
|
||||
type_id="ietf",
|
||||
date=datetime.date.today() + datetime.timedelta(days=180),
|
||||
date=date_today() + datetime.timedelta(days=180),
|
||||
city="New York",
|
||||
country="US",
|
||||
time_zone="US/Eastern",
|
||||
|
|
|
@ -40,7 +40,6 @@ import os
|
|||
import sys
|
||||
import time
|
||||
import json
|
||||
import pytz
|
||||
import importlib
|
||||
import socket
|
||||
import gzip
|
||||
|
@ -754,7 +753,7 @@ class IetfTestRunner(DiscoverRunner):
|
|||
with io.open(self.coverage_file, encoding='utf-8') as file:
|
||||
self.coverage_master = json.load(file)
|
||||
self.coverage_data = {
|
||||
"time": timezone.now().astimezone(pytz.utc).strftime("%Y-%m-%dT%H:%M:%SZ"),
|
||||
"time": timezone.now().strftime("%Y-%m-%dT%H:%M:%SZ"),
|
||||
"template": {
|
||||
"coverage": 0.0,
|
||||
"covered": {},
|
||||
|
|
Loading…
Reference in a new issue