def test_form_is_valid(self):

        form_data = {
            'customer': self.cust1.id,
            'scheduled_date': '2017-10-01',
            'price': 45,
            'job_status': self.due.id,
        }
        form = JobUpdateForm(data=form_data)
        self.assertTrue(form.is_valid())
    def test_form_is_not_valid_with_missing_required_field(self):

        form_data = {
            'customer': self.cust1.id,
            'scheduled_date': '2017-10-01',
            # 'allocated_date': '2017-10-01',
            # 'completed_date': '2017-10-01',
            'price': 45,
            # 'job_notes': None,
            'job_status': self.compl.id,
            # 'payment_status': self.owed.id,
            # 'window_cleaner': self.user2.id
        }
        form = JobUpdateForm(data=form_data)
        self.assertFalse(form.is_valid())
    def test_form_is_not_valid_with_booked_no_wc(self):

        form_data = {
            'customer': self.cust1.id,
            'scheduled_date': '2017-10-01',
            'allocated_date': '2017-10-01',
            # 'completed_date': '2017-10-01',
            'price': 45,
            'job_status': self.booked.id,
            # 'payment_status': self.paid.id,
            # 'window_cleaner': self.user2.id
        }
        form = JobUpdateForm(data=form_data)
        self.assertFalse(form.is_valid())
        self.assertTrue('Job is booked - please enter a window cleaner'
                        in str(form.errors['__all__']))
 def test_form_is_not_valid_with_due_paid(self):
     form_data = {
         'customer': self.cust1.id,
         'scheduled_date': '2017-10-01',
         'allocated_date': '2017-10-01',
         # 'completed_date': '2017-10-01',
         'price': 45,
         'job_status': self.due.id,
         'payment_status': self.paid.id,
         'window_cleaner': self.user2.id
     }
     form = JobUpdateForm(data=form_data)
     self.assertFalse(form.is_valid())
     self.assertTrue('Job has 'Due' status but is set as paid'
                     ' - please correct'
                     in str(form.errors['__all__']))
    def test_form_is_not_valid_with_completed_date_no_alloc(self):

        form_data = {
            'customer': self.cust1.id,
            'scheduled_date': '2017-10-01',
            # 'allocated_date': '2017-10-01',
            'completed_date': '2017-10-01',
            'price': 45,
            'job_status': self.compl.id,
            'payment_status': self.owed.id,
            'window_cleaner': self.user2.id
        }
        form = JobUpdateForm(data=form_data)
        self.assertFalse(form.is_valid())
        self.assertTrue('Please enter an allocated date'
                        in str(form.errors['__all__']))
    def test_form_is_not_valid_with_completed_date_due_status(self):

        form_data = {
            'customer': self.cust1.id,
            'scheduled_date': '2017-10-01',
            'allocated_date': '2017-10-01',
            'completed_date': '2017-10-01',
            'price': 45,
            'job_status': self.due.id,
            'payment_status': self.owed.id,
            'window_cleaner': self.user2.id
        }
        form = JobUpdateForm(data=form_data)
        self.assertFalse(form.is_valid())
        # print form.errors['__all__']
        self.assertTrue('Job has a completed date but not a '
                        ''completed' job status - please correct'
                        in str(form.errors['__all__']))