From 1386a90de8361cfa490c95e09505bdc59cbc9fc8 Mon Sep 17 00:00:00 2001
From: Robert Sparks <rjsparks@nostrum.com>
Date: Thu, 22 Mar 2018 18:44:38 +0000
Subject: [PATCH] Test coverage improvements for ietf/secr/telechat/views.
 Commit ready for merge.  - Legacy-Id: 14902

---
 ietf/secr/telechat/tests.py | 80 ++++++++++++++++++++++++++++++++++++-
 1 file changed, 78 insertions(+), 2 deletions(-)

diff --git a/ietf/secr/telechat/tests.py b/ietf/secr/telechat/tests.py
index d7925821f..a7ca60803 100644
--- a/ietf/secr/telechat/tests.py
+++ b/ietf/secr/telechat/tests.py
@@ -1,9 +1,12 @@
+# -*- coding: utf-8 -*-
 import datetime
 from pyquery import PyQuery
 
+import debug    # pyflakes:ignore
+
 from django.urls import reverse
 
-from ietf.doc.models import Document, State, BallotDocEvent, BallotType
+from ietf.doc.models import Document, State, BallotDocEvent, BallotType, BallotPositionDocEvent
 from ietf.doc.utils import update_telechat, create_ballot_if_not_open
 from ietf.utils.test_utils import TestCase
 from ietf.iesg.models import TelechatDate
@@ -15,7 +18,7 @@ SECR_USER='secretary'
 
 def augment_data():
     TelechatDate.objects.create(date=datetime.datetime.today())
-    
+
 class SecrTelechatTestCase(TestCase):
     def test_main(self):
         "Main Test"
@@ -87,3 +90,76 @@ class SecrTelechatTestCase(TestCase):
         self.assertEqual(q("#telechat-positions-table").find("th:contains('Block')").length,1)
         self.assertEqual(q("#telechat-positions-table").find("th:contains('Abstain')").length,1)
         self.assertEqual(q("#telechat-positions-table").find("th:contains('No Record')").length,1)
+
+    def test_bash(self):
+        today = datetime.datetime.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")
+        response = self.client.get(url)
+        self.assertEqual(response.status_code, 200)
+
+    def test_doc_detail_post_update_ballot(self):
+        make_test_data()
+        by=Person.objects.get(name="(System)")
+        charter = Document.objects.filter(type='charter').first()
+        charter.set_state(State.objects.get(used=True, slug="intrev", type="charter"))
+        last_week = datetime.date.today()-datetime.timedelta(days=7)
+        BallotDocEvent.objects.create(type='created_ballot',by=by,doc=charter, rev=charter.rev,
+                                      ballot_type=BallotType.objects.get(doc_type=charter.type,slug='r-extrev'),
+                                      time=last_week)
+        d = get_next_telechat_date()
+        date = d.strftime('%Y-%m-%d')
+        update_telechat(None, charter, by, d)
+        url = reverse('ietf.secr.telechat.views.doc_detail', kwargs={'date':date, 'name':charter.name})
+        self.client.login(username="secretary", password="secretary+password")
+        response = self.client.get(url)
+        self.assertEqual(response.status_code, 200)
+        response = self.client.post(url,{
+                'submit': 'update_ballot',
+                'form-INITIAL_FORMS':7,
+                'form-TOTAL_FORMS':7,
+                'form-0-name': 'Ops Ad', 
+                'form-0-id': '13', 
+                'form-0-position': 'noobj',
+                'form-1-name': 'Areaư Irector',
+                'form-1-id': '12', 
+                'form-2-name': 'Ad No1', 
+                'form-2-id': '16',
+                'form-3-name': 'Ad No2',
+                'form-3-id': '17',
+                'form-4-name': 'Ad No3',
+                'form-4-id': '18',
+                'form-5-name': 'Ad No4',
+                'form-5-id': '19',
+                'form-6-name': 'Ad No5',
+                'form-6-id': '20',
+            }
+        )
+        self.assertEqual(response.status_code,302)
+        self.assertTrue(BallotPositionDocEvent.objects.filter(doc=charter, ad_id=13, pos__slug='noobj').exists())
+
+    def test_doc_detail_post_update_state(self):
+        make_test_data()
+        by=Person.objects.get(name="(System)")
+        charter = Document.objects.filter(type='charter').first()
+        charter.set_state(State.objects.get(used=True, slug="intrev", type="charter"))
+        last_week = datetime.date.today()-datetime.timedelta(days=7)
+        BallotDocEvent.objects.create(type='created_ballot',by=by,doc=charter, rev=charter.rev,
+                                      ballot_type=BallotType.objects.get(doc_type=charter.type,slug='r-extrev'),
+                                      time=last_week)
+        d = get_next_telechat_date()
+        date = d.strftime('%Y-%m-%d')
+        update_telechat(None, charter, by, d)
+        url = reverse('ietf.secr.telechat.views.doc_detail', kwargs={'date':date, 'name':charter.name})
+        self.client.login(username="secretary", password="secretary+password")
+        response = self.client.get(url)
+        self.assertEqual(response.status_code, 200)
+        response = self.client.post(url,{
+                 'submit': 'update_state',
+                 'state': 83, 
+                 'substate': '',
+            }
+        )
+        self.assertEqual(response.status_code,302)
+        self.assertEqual(charter.get_state('charter').slug,'notrev')