1- # Copyright The IETF Trust 2012-2019 , All Rights Reserved
1+ # Copyright The IETF Trust 2012-2020 , All Rights Reserved
22# -*- coding: utf-8 -*-
33
44
@@ -516,8 +516,19 @@ def tearDown(self):
516516 def test_document_draft (self ):
517517 draft = WgDraftFactory (name = 'draft-ietf-mars-test' ,rev = '01' )
518518 HolderIprDisclosureFactory (docs = [draft ])
519+
520+ # Docs for testing relationships. Does not test 'possibly-replaces'. The 'replaced_by' direction
521+ # is tested separately below.
519522 replaced = IndividualDraftFactory ()
520523 draft .relateddocument_set .create (relationship_id = 'replaces' ,source = draft ,target = replaced .docalias .first ())
524+ obsoleted = IndividualDraftFactory ()
525+ draft .relateddocument_set .create (relationship_id = 'obs' ,source = draft ,target = obsoleted .docalias .first ())
526+ obsoleted_by = IndividualDraftFactory ()
527+ obsoleted_by .relateddocument_set .create (relationship_id = 'obs' ,source = obsoleted_by ,target = draft .docalias .first ())
528+ updated = IndividualDraftFactory ()
529+ draft .relateddocument_set .create (relationship_id = 'updates' ,source = draft ,target = updated .docalias .first ())
530+ updated_by = IndividualDraftFactory ()
531+ updated_by .relateddocument_set .create (relationship_id = 'updates' ,source = obsoleted_by ,target = draft .docalias .first ())
521532
522533 # these tests aren't testing all attributes yet, feel free to
523534 # expand them
@@ -527,45 +538,122 @@ def test_document_draft(self):
527538 self .assertContains (r , "Active Internet-Draft" )
528539 self .assertContains (r , "Show full document text" )
529540 self .assertNotContains (r , "Deimos street" )
541+ self .assertContains (r , replaced .canonical_name ())
542+ self .assertContains (r , replaced .title )
543+ # obs/updates not included until draft is RFC
544+ self .assertNotContains (r , obsoleted .canonical_name ())
545+ self .assertNotContains (r , obsoleted .title )
546+ self .assertNotContains (r , obsoleted_by .canonical_name ())
547+ self .assertNotContains (r , obsoleted_by .title )
548+ self .assertNotContains (r , updated .canonical_name ())
549+ self .assertNotContains (r , updated .title )
550+ self .assertNotContains (r , updated_by .canonical_name ())
551+ self .assertNotContains (r , updated_by .title )
530552
531553 r = self .client .get (urlreverse ("ietf.doc.views_doc.document_main" , kwargs = dict (name = draft .name )) + "?include_text=0" )
532554 self .assertEqual (r .status_code , 200 )
533555 self .assertContains (r , "Active Internet-Draft" )
534556 self .assertNotContains (r , "Show full document text" )
535557 self .assertContains (r , "Deimos street" )
558+ self .assertContains (r , replaced .canonical_name ())
559+ self .assertContains (r , replaced .title )
560+ # obs/updates not included until draft is RFC
561+ self .assertNotContains (r , obsoleted .canonical_name ())
562+ self .assertNotContains (r , obsoleted .title )
563+ self .assertNotContains (r , obsoleted_by .canonical_name ())
564+ self .assertNotContains (r , obsoleted_by .title )
565+ self .assertNotContains (r , updated .canonical_name ())
566+ self .assertNotContains (r , updated .title )
567+ self .assertNotContains (r , updated_by .canonical_name ())
568+ self .assertNotContains (r , updated_by .title )
536569
537570 r = self .client .get (urlreverse ("ietf.doc.views_doc.document_main" , kwargs = dict (name = draft .name )) + "?include_text=foo" )
538571 self .assertEqual (r .status_code , 200 )
539572 self .assertContains (r , "Active Internet-Draft" )
540573 self .assertNotContains (r , "Show full document text" )
541574 self .assertContains (r , "Deimos street" )
575+ self .assertContains (r , replaced .canonical_name ())
576+ self .assertContains (r , replaced .title )
577+ # obs/updates not included until draft is RFC
578+ self .assertNotContains (r , obsoleted .canonical_name ())
579+ self .assertNotContains (r , obsoleted .title )
580+ self .assertNotContains (r , obsoleted_by .canonical_name ())
581+ self .assertNotContains (r , obsoleted_by .title )
582+ self .assertNotContains (r , updated .canonical_name ())
583+ self .assertNotContains (r , updated .title )
584+ self .assertNotContains (r , updated_by .canonical_name ())
585+ self .assertNotContains (r , updated_by .title )
542586
543587 r = self .client .get (urlreverse ("ietf.doc.views_doc.document_main" , kwargs = dict (name = draft .name )) + "?include_text=1" )
544588 self .assertEqual (r .status_code , 200 )
545589 self .assertContains (r , "Active Internet-Draft" )
546590 self .assertNotContains (r , "Show full document text" )
547591 self .assertContains (r , "Deimos street" )
592+ self .assertContains (r , replaced .canonical_name ())
593+ self .assertContains (r , replaced .title )
594+ # obs/updates not included until draft is RFC
595+ self .assertNotContains (r , obsoleted .canonical_name ())
596+ self .assertNotContains (r , obsoleted .title )
597+ self .assertNotContains (r , obsoleted_by .canonical_name ())
598+ self .assertNotContains (r , obsoleted_by .title )
599+ self .assertNotContains (r , updated .canonical_name ())
600+ self .assertNotContains (r , updated .title )
601+ self .assertNotContains (r , updated_by .canonical_name ())
602+ self .assertNotContains (r , updated_by .title )
548603
549604 self .client .cookies = SimpleCookie ({str ('full_draft' ): str ('on' )})
550605 r = self .client .get (urlreverse ("ietf.doc.views_doc.document_main" , kwargs = dict (name = draft .name )))
551606 self .assertEqual (r .status_code , 200 )
552607 self .assertContains (r , "Active Internet-Draft" )
553608 self .assertNotContains (r , "Show full document text" )
554609 self .assertContains (r , "Deimos street" )
610+ self .assertContains (r , replaced .canonical_name ())
611+ self .assertContains (r , replaced .title )
612+ # obs/updates not included until draft is RFC
613+ self .assertNotContains (r , obsoleted .canonical_name ())
614+ self .assertNotContains (r , obsoleted .title )
615+ self .assertNotContains (r , obsoleted_by .canonical_name ())
616+ self .assertNotContains (r , obsoleted_by .title )
617+ self .assertNotContains (r , updated .canonical_name ())
618+ self .assertNotContains (r , updated .title )
619+ self .assertNotContains (r , updated_by .canonical_name ())
620+ self .assertNotContains (r , updated_by .title )
555621
556622 self .client .cookies = SimpleCookie ({str ('full_draft' ): str ('off' )})
557623 r = self .client .get (urlreverse ("ietf.doc.views_doc.document_main" , kwargs = dict (name = draft .name )))
558624 self .assertEqual (r .status_code , 200 )
559625 self .assertContains (r , "Active Internet-Draft" )
560626 self .assertContains (r , "Show full document text" )
561627 self .assertNotContains (r , "Deimos street" )
628+ self .assertContains (r , replaced .canonical_name ())
629+ self .assertContains (r , replaced .title )
630+ # obs/updates not included until draft is RFC
631+ self .assertNotContains (r , obsoleted .canonical_name ())
632+ self .assertNotContains (r , obsoleted .title )
633+ self .assertNotContains (r , obsoleted_by .canonical_name ())
634+ self .assertNotContains (r , obsoleted_by .title )
635+ self .assertNotContains (r , updated .canonical_name ())
636+ self .assertNotContains (r , updated .title )
637+ self .assertNotContains (r , updated_by .canonical_name ())
638+ self .assertNotContains (r , updated_by .title )
562639
563640 self .client .cookies = SimpleCookie ({str ('full_draft' ): str ('foo' )})
564641 r = self .client .get (urlreverse ("ietf.doc.views_doc.document_main" , kwargs = dict (name = draft .name )))
565642 self .assertEqual (r .status_code , 200 )
566643 self .assertContains (r , "Active Internet-Draft" )
567644 self .assertContains (r , "Show full document text" )
568645 self .assertNotContains (r , "Deimos street" )
646+ self .assertContains (r , replaced .canonical_name ())
647+ self .assertContains (r , replaced .title )
648+ # obs/updates not included until draft is RFC
649+ self .assertNotContains (r , obsoleted .canonical_name ())
650+ self .assertNotContains (r , obsoleted .title )
651+ self .assertNotContains (r , obsoleted_by .canonical_name ())
652+ self .assertNotContains (r , obsoleted_by .title )
653+ self .assertNotContains (r , updated .canonical_name ())
654+ self .assertNotContains (r , updated .title )
655+ self .assertNotContains (r , updated_by .canonical_name ())
656+ self .assertNotContains (r , updated_by .title )
569657
570658 r = self .client .get (urlreverse ("ietf.doc.views_doc.document_html" , kwargs = dict (name = draft .name )))
571659 self .assertEqual (r .status_code , 200 )
@@ -604,7 +692,8 @@ def test_document_draft(self):
604692 r = self .client .get (urlreverse ("ietf.doc.views_doc.document_main" , kwargs = dict (name = draft .name )))
605693 self .assertEqual (r .status_code , 200 )
606694 self .assertContains (r , "Replaced Internet-Draft" )
607- self .assertContains (r , replacement .name )
695+ self .assertContains (r , replacement .canonical_name ())
696+ self .assertContains (r , replacement .title )
608697 rel .delete ()
609698
610699 # draft published as RFC
@@ -627,6 +716,17 @@ def test_document_draft(self):
627716 self .assertEqual (r .status_code , 200 )
628717 self .assertContains (r , "RFC 123456" )
629718 self .assertContains (r , draft .name )
719+ self .assertContains (r , replaced .canonical_name ())
720+ self .assertContains (r , replaced .title )
721+ # obs/updates included with RFC
722+ self .assertContains (r , obsoleted .canonical_name ())
723+ self .assertContains (r , obsoleted .title )
724+ self .assertContains (r , obsoleted_by .canonical_name ())
725+ self .assertContains (r , obsoleted_by .title )
726+ self .assertContains (r , updated .canonical_name ())
727+ self .assertContains (r , updated .title )
728+ self .assertContains (r , updated_by .canonical_name ())
729+ self .assertContains (r , updated_by .title )
630730
631731 # naked RFC - also wierd that we test a PS from the ISE
632732 rfc = IndividualDraftFactory (
0 commit comments