Skip to content

Commit 5c6ee01

Browse files
committed
drafts -> docs in /feed/iesg-agenda/ since we're returning more than
just I-Ds, sort by latest first, limit to documents on current and future telechats (as the description says) to speed it up, add simple test of the feed - Legacy-Id: 6312
1 parent 52febb2 commit 5c6ee01

2 files changed

Lines changed: 46 additions & 39 deletions

File tree

ietf/iesg/feeds.py

Lines changed: 19 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -8,27 +8,31 @@
88

99
class IESGAgenda(Feed):
1010
title = "Documents on Future IESG Telechat Agendas"
11-
link = "http://datatracker.ietf.org/iesg/agenda/"
11+
link = settings.IDTRACKER_BASE_URL + "/iesg/agenda/"
1212
feed_type = Atom1Feed
1313

1414
def items(self):
1515
from ietf.doc.models import TelechatDocEvent
16-
drafts = Document.objects.filter(docevent__telechatdocevent__telechat_date__gte=datetime.date.min).distinct()
17-
for d in drafts:
16+
docs = Document.objects.filter(docevent__telechatdocevent__telechat_date__gte=datetime.date.today()).distinct()
17+
for d in docs:
1818
d.latest_telechat_event = d.latest_event(TelechatDocEvent, type="scheduled_for_telechat")
19-
drafts = [d for d in drafts if d.latest_telechat_event.telechat_date]
20-
drafts.sort(key=lambda d: d.latest_telechat_event.telechat_date)
21-
return drafts
19+
docs = [d for d in docs if d.latest_telechat_event.telechat_date]
20+
docs.sort(key=lambda d: d.latest_telechat_event.telechat_date, reverse=True)
21+
return docs
2222

23+
def item_categories(self, doc):
24+
return [ str(doc.telechat_date) ]
2325

24-
def item_categories(self, item):
25-
return [ str(item.telechat_date) ]
26-
27-
def item_pubdate(self, item):
28-
return item.latest_telechat_event.time
26+
def item_pubdate(self, doc):
27+
return doc.latest_telechat_event.time
2928

30-
def item_author_name(self, item):
31-
return str( item.ad ) if item.ad else "None"
29+
def item_author_name(self, doc):
30+
return doc.ad.plain_name() if doc.ad else "None"
3231

33-
def item_author_email(self, item):
34-
return str( item.ad.role_email("ad") ) if item.ad else ""
32+
def item_author_email(self, doc):
33+
if not doc.ad:
34+
return ""
35+
e = doc.ad.role_email("ad")
36+
if not e:
37+
return ""
38+
return e.address

ietf/iesg/tests.py

Lines changed: 27 additions & 24 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,3 @@
1-
from datetime import timedelta
21
import os, shutil
32

43
import django.test
@@ -7,16 +6,38 @@
76

87
from pyquery import PyQuery
98

10-
from ietf.idtracker.models import *
9+
from ietf.utils.test_data import make_test_data
10+
from ietf.doc.models import Document, TelechatDocEvent, State
11+
from ietf.person.models import Person
12+
from ietf.group.models import Group
1113
from ietf.iesg.models import *
1214
from ietf.utils.test_utils import SimpleUrlTestCase, RealDatabaseTest, canonicalize_feed, login_testing_unauthorized
1315

16+
class IESGAgendaTests(django.test.TestCase):
17+
def test_feed(self):
18+
draft = make_test_data()
19+
20+
url = "/feed/iesg-agenda/"
21+
22+
r = self.client.get(url)
23+
self.assertEquals(r.status_code, 200)
24+
self.assertTrue(draft.name not in r.content)
25+
26+
# add to schedule
27+
e = TelechatDocEvent(type="scheduled_for_telechat")
28+
e.doc = draft
29+
e.by = Person.objects.get(name="Aread Irector")
30+
e.telechat_date = TelechatDate.objects.active()[0].date
31+
e.returning_item = True
32+
e.save()
33+
34+
r = self.client.get(url)
35+
self.assertEquals(r.status_code, 200)
36+
self.assertTrue(draft.name in r.content)
37+
self.assertTrue(draft.title in r.content)
38+
1439
class RescheduleOnAgendaTestCase(django.test.TestCase):
1540
def test_reschedule(self):
16-
from ietf.utils.test_data import make_test_data
17-
from ietf.person.models import Person
18-
from ietf.doc.models import TelechatDocEvent
19-
2041
draft = make_test_data()
2142

2243
# add to schedule
@@ -82,8 +103,6 @@ def tearDown(self):
82103

83104

84105
def test_working_group_actions(self):
85-
from ietf.utils.test_data import make_test_data
86-
87106
make_test_data()
88107

89108
url = urlreverse('iesg_working_group_actions')
@@ -98,8 +117,6 @@ def test_working_group_actions(self):
98117
self.assertTrue('(sieve)' in r.content)
99118

100119
def test_delete_wgaction(self):
101-
from ietf.utils.test_data import make_test_data
102-
103120
make_test_data()
104121

105122
wga = WGAction.objects.all()[0]
@@ -111,9 +128,6 @@ def test_delete_wgaction(self):
111128
self.assertTrue(not WGAction.objects.filter(pk=wga.pk))
112129

113130
def test_edit_wgaction(self):
114-
from ietf.utils.test_data import make_test_data
115-
from ietf.person.models import Person
116-
117131
make_test_data()
118132

119133
wga = WGAction.objects.all()[0]
@@ -146,10 +160,6 @@ def test_edit_wgaction(self):
146160
self.assertEquals(wga.telechat_date, dates[3].date)
147161

148162
def test_add_possible_wg(self):
149-
from ietf.utils.test_data import make_test_data
150-
from ietf.person.models import Person
151-
from ietf.group.models import Group
152-
153163
make_test_data()
154164

155165
url = urlreverse('iesg_working_group_actions')
@@ -191,8 +201,6 @@ def test_add_possible_wg(self):
191201
self.assertEquals(wgas_before + 1, WGAction.objects.all().count())
192202

193203
def test_delete_possible_wg(self):
194-
from ietf.utils.test_data import make_test_data
195-
196204
make_test_data()
197205

198206
url = urlreverse('iesg_working_group_actions')
@@ -214,10 +222,6 @@ def doCanonicalize(self, url, content):
214222
else:
215223
return content
216224

217-
#Tests added since database redesign that speak the new clases
218-
219-
from ietf.doc.models import Document,TelechatDocEvent,State
220-
from ietf.group.models import Person
221225
class DeferUndeferTestCase(django.test.TestCase):
222226
def helper_test_defer(self,name):
223227

@@ -313,5 +317,4 @@ def test_undefer_conflict_review(self):
313317
# when charters support being deferred, be sure to test them here
314318

315319
def setUp(self):
316-
from ietf.utils.test_data import make_test_data
317320
make_test_data()

0 commit comments

Comments
 (0)