|
22 | 22 |
|
23 | 23 | from ietf.doc.models import ( Document, DocAlias, DocRelationshipName, RelatedDocument, State, |
24 | 24 | DocEvent, BallotPositionDocEvent, LastCallDocEvent, WriteupDocEvent, NewRevisionDocEvent ) |
25 | | -from ietf.doc.factories import DocumentFactory, DocEventFactory, CharterFactory, ConflictReviewFactory, WgDraftFactory, IndividualDraftFactory, WgRfcFactory, IndividualRfcFactory |
| 25 | +from ietf.doc.factories import DocumentFactory, DocEventFactory, CharterFactory, ConflictReviewFactory, WgDraftFactory, IndividualDraftFactory, WgRfcFactory, IndividualRfcFactory, StateDocEventFactory |
26 | 26 | from ietf.doc.utils import create_ballot_if_not_open |
27 | 27 | from ietf.group.models import Group |
28 | 28 | from ietf.group.factories import GroupFactory |
@@ -289,7 +289,25 @@ def test_ajax_search_docs(self): |
289 | 289 | self.assertEqual(r.status_code, 200) |
290 | 290 | data = json.loads(r.content) |
291 | 291 | self.assertEqual(data[0]["id"], doc_alias.pk) |
292 | | - |
| 292 | + |
| 293 | + def test_recent_drafts(self): |
| 294 | + # Three drafts to show with various warnings |
| 295 | + drafts = WgDraftFactory.create_batch(3,states=[('draft','active'),('draft-iesg','ad-eval')]) |
| 296 | + for index, draft in enumerate(drafts): |
| 297 | + StateDocEventFactory(doc=draft, state=('draft-iesg','ad-eval'), time=datetime.datetime.now()-datetime.timedelta(days=[1,15,29][index])) |
| 298 | + |
| 299 | + # And one draft that should not show (with the default of 7 days to view) |
| 300 | + old = WgDraftFactory() |
| 301 | + old.docevent_set.filter(newrevisiondocevent__isnull=False).update(time=datetime.datetime.now()-datetime.timedelta(days=8)) |
| 302 | + StateDocEventFactory(doc=old, time=datetime.datetime.now()-datetime.timedelta(days=8)) |
| 303 | + |
| 304 | + url = urlreverse('ietf.doc.views_search.recent_drafts') |
| 305 | + r = self.client.get(url) |
| 306 | + self.assertEqual(r.status_code, 200) |
| 307 | + q = PyQuery(r.content) |
| 308 | + self.assertEqual(len(q('td.doc')),3) |
| 309 | + self.assertEqual(q('td.status span.label-warning').text(),"for 15 days") |
| 310 | + self.assertEqual(q('td.status span.label-danger').text(),"for 29 days") |
293 | 311 |
|
294 | 312 | class DocDraftTestCase(TestCase): |
295 | 313 | draft_text = """ |
|
0 commit comments