def test_submit_with_images_report_and_thumbnail_matches_size(self):
        res = self.testapp.get("/")
        form = res.forms["deform"]
        form["serial"] = "ft789"
        form["coefficient_0"] = "100"
        form["coefficient_1"] = "101"
        form["coefficient_2"] = "102"
        form["coefficient_3"] = "103"

        # Submitting via an actual browser strips the directory
        # prefixes. Copy the files to temporary locations to exactly
        # mimic this
        image0_file = "resources/image0_defined.jpg"
        image1_file = "resources/image1_defined.jpg"
        shutil.copy(image0_file, "localimg0.jpg")
        shutil.copy(image1_file, "localimg1.jpg")

        # From: # http://stackoverflow.com/questions/3337736/\
        # how-do-i-use-pylons-paste-webtest-with-multiple-\
        # checkboxes-with-the-same-name
        top_index = 0
        bottom_index = 1
        form.set("upload", Upload("localimg0.jpg"), top_index)
        form.set("upload", Upload("localimg1.jpg"), bottom_index)
        submit_res = form.submit("submit")

        res = self.testapp.get("/view_pdf/ft789")
        pdf_size = res.content_length
        self.assertTrue(size_range(pdf_size, 106456, ok_range=40000))

        res = self.testapp.get("/view_thumbnail/ft789")
        png_size = res.content_length
        self.assertTrue(size_range(png_size, 217477, ok_range=40000))
    def test_can_return_blob_main_pdf(self):
        from calibrationreport.pdfgenerator import WasatchSinglePage

        pdf = WasatchSinglePage(return_blob=True)
        blob_data = pdf.return_blob()

        self.assertTrue(size_range(len(blob_data), 101194, ok_range=5000))
    def test_can_return_blob_thumbnail_from_pdf(self):
        from calibrationreport.pdfgenerator import WasatchSinglePage

        pdf = WasatchSinglePage(return_blob=True)
        blob_data = pdf.return_thumbnail_blob()

        self.assertTrue(size_range(len(blob_data), 198863, 
                                   ok_range=40000))
    def test_completed_form_report_created_is_accessible(self):
        post_dict = {"submit":"submit", "serial":"UT5555",
                     "coefficient_0":"100", "coefficient_1":"101", 
                     "coefficient_2":"102", "coefficient_3":"103"}
        result = self.post_calibration_report(post_dict)

        from calibrationreport.views import CalibrationReportViews
        request = testing.DummyRequest()
        request.matchdict["serial"] = "ut5555"
        inst = CalibrationReportViews(request)
        result = inst.view_pdf() 
        self.assertTrue(size_range(result.content_length, 106473))
    def test_submit_with_all_values_pdf_link_available(self):
        res = self.testapp.get("/")
        form = res.forms["deform"]
        form["serial"] = "ft789"
        form["coefficient_0"] = "100"
        form["coefficient_1"] = "101"
        form["coefficient_2"] = "102"
        form["coefficient_3"] = "103"

        submit_res = form.submit("submit")
        self.assertTrue("was a problem with" not in submit_res.body)

        pdf_link = "href=\"/view_pdf/ft789"
        self.assertTrue(pdf_link in submit_res.body)
 
        res = self.testapp.get("/view_pdf/ft789")
        img_size = res.content_length
        self.assertTrue(size_range(img_size, 106468, ok_range=5000))