<?xml version="1.0" encoding="UTF-8"?>
<commit>
  <added type="array"/>
  <modified type="array">
    <modified>
      <diff>@@ -120,7 +120,8 @@ class login:
         lf, sf = forms.loginform(), forms.signupform()
         pf, wf = forms.petitionform(), (wf or forms.wyrform())
         pf.fill(i), wf.fill(i)
-        return render.petitionlogin(lf, sf, pf, wf)
+        is_draft = 'save' in i
+        return render.petitionlogin(lf, sf, pf, wf, is_draft=is_draft)
 
     def POST(self):
         i = web.input()</diff>
      <filename>petition.py</filename>
    </modified>
    <modified>
      <diff>@@ -1,4 +1,4 @@
-$def with (loginform, signupform, petitionform, wyrform, msg=None, redirect=&quot;&quot;)
+$def with (loginform, signupform, petitionform, wyrform, msg=None, redirect=&quot;&quot;, is_draft=False)
 
 $var width: 782px
 $var color: white
@@ -46,6 +46,8 @@ $if not cookies_on(): &lt;p class=&quot;error&quot;&gt;Please turn on cookies for login to work.
             $:wyrform.zip5.render()
             $:wyrform.zip4.render()
             $:wyrform.phone.render()
+        $if is_draft:
+            &lt;input type='hidden' name=&quot;save&quot; /&gt;
         &lt;/div&gt;
         $:signupform.redirect.render()
         &lt;fieldset&gt;
@@ -76,6 +78,9 @@ $if not cookies_on(): &lt;p class=&quot;error&quot;&gt;Please turn on cookies for login to work.
             $:wyrform.zip5.render()
             $:wyrform.zip4.render()
             $:wyrform.phone.render()
+            $if is_draft:
+                &lt;input type='hidden' name=&quot;save&quot; /&gt;
+            
         &lt;/div&gt;
         $:signupform.redirect.render()
         &lt;fieldset&gt;</diff>
      <filename>templates/petitionlogin.html</filename>
    </modified>
    <modified>
      <diff>@@ -113,20 +113,16 @@ class PetitionTest(webtest.TestCase):
         self.assertTrue(test_pid in b.data)
         self.assertTrue(test_pid_to_cong in b.data)
 
-    def test_draft_L(self):
-        b = self.browser()
-        self.login()
-        b.open('/c/new')
-        ptitle = self._test_create()
-        # save and make sure that it doesn't come into list in /c/ and share is okay 
-        b.submit(name='save')
+    def _test_save_draft(self, b, ptitle):    
+        # make sure that it doesn't come into list in /c/ and share is okay 
         self.assertTrue('Petition saved for publishing later' in b.data)
         self.assertTrue('Share Draft' in b.data)
         b.follow_link(text='Share Draft')
         self.assertTrue('Could you please review the draft of the petition' in b.data)
         b.open('/c/')
         self.assertTrue(ptitle not in b.data)
-        
+    
+    def _test_publish_draft(self, b, ptitle):
         #now open it back, publish it and make sure that it comes in list in /c/
         pid = ptitle.replace(' ', '-')
         b.open('/c/%s?m=edit' % pid)
@@ -138,6 +134,29 @@ class PetitionTest(webtest.TestCase):
         self.assertTrue('join me in signing the petition' in b.data)
         b.open('/c')
         self.assertTrue(ptitle in b.data)
+
+    def test_draft_L(self):
+        b = self.browser()
+        self.login()
+        b.open('/c/new')
+        ptitle = self._test_create()
+        b.submit(name='save')
+        self._test_save_draft(b, ptitle)
+        self._test_publish_draft(b, ptitle)
+        
+    def test_draft_NL(self):
+        b = self.browser()
+        b.open('/c/new')
+        ptitle = self._test_create()
+        b.submit(name='save')
+        self.assertEquals(b.path, '/c/new')
+        form = b.select_form(name='login')
+        b['useremail'] = test_email
+        b['password'] = test_passwd
+        b.submit()
+        self._test_save_draft(b, ptitle)
+        self._test_publish_draft(b, ptitle)
+        
         
     def test_edit_by_owner(self):
         b = self.browser()</diff>
      <filename>test/test_petitions.py</filename>
    </modified>
  </modified>
  <removed type="array"/>
  <parents type="array">
    <parent>
      <id>80fe447855d3f239fde67ef60b54f2bbc5338dce</id>
    </parent>
  </parents>
  <author>
    <name>Devi</name>
    <email>asldevi@gmail.com</email>
  </author>
  <url>http://github.com/aaronsw/watchdog/commit/ba32bcd377dab48bc692b26d24381b84aad2443a</url>
  <id>ba32bcd377dab48bc692b26d24381b84aad2443a</id>
  <committed-date>2009-03-10T00:52:49-07:00</committed-date>
  <authored-date>2009-03-10T00:52:25-07:00</authored-date>
  <message>bug fix in petition drafts

The lesson is: Don't be lazy to write unit tests to cover all scenarios</message>
  <tree>7b8e78bfc05cce8e5af7c6f65e552ede11514092</tree>
  <committer>
    <name>Devi</name>
    <email>asldevi@gmail.com</email>
  </committer>
</commit>
