Beispiel #1
0
 def test_invalid_gzip(self):
     with tempfile.NamedTemporaryFile(suffix=".gz") as f:
         f.write(b'Hello\n')
         f.flush()
         with self.assertRaises(OSError):
             with WPTScreenshot(f.name, api=self.api, processes=1) as s:
                 s.process()
     self.server.terminate()
     _, err = self.server.communicate()
     sizes = self._batch_sizes(err)
     self.assertListEqual(sizes, [])
Beispiel #2
0
 def test_invalid_encoding(self):
     with tempfile.NamedTemporaryFile() as f:
         f.write(b'\xc8\n')
         f.flush()
         with self.assertRaises(UnicodeDecodeError):
             with WPTScreenshot(f.name, api=self.api, processes=1) as s:
                 s.process()
     self.server.terminate()
     _, err = self.server.communicate()
     sizes = self._batch_sizes(err)
     self.assertListEqual(sizes, [])
Beispiel #3
0
 def test_basic(self):
     with tempfile.NamedTemporaryFile() as f:
         f.write(b'data:image/png;base64,0001\n')
         f.write(b'data:image/png;base64,0002\n')
         f.flush()
         with WPTScreenshot(f.name, api=self.api, processes=1) as s:
             s.process()
     self.server.terminate()
     _, err = self.server.communicate()
     sizes = self._batch_sizes(err)
     self.assertListEqual(sizes, [2])
Beispiel #4
0
 def test_gzip(self):
     with tempfile.NamedTemporaryFile(suffix='.gz') as f:
         with gzip.GzipFile(filename=f.name, mode='wb') as g:
             g.write(b'data:image/png;base64,0001\n')
             g.write(b'data:image/png;base64,0002\n')
         f.flush()
         with WPTScreenshot(f.name, api=self.api, processes=1) as s:
             s.process()
     self.server.terminate()
     _, err = self.server.communicate()
     sizes = self._batch_sizes(err)
     self.assertListEqual(sizes, [2])
Beispiel #5
0
 def test_multiple_batches(self):
     with tempfile.NamedTemporaryFile() as f:
         f.write(b'data:image/png;base64,0001\n')
         f.write(b'data:image/png;base64,0002\n')
         f.write(b'data:image/png;base64,0003\n')
         f.flush()
         with WPTScreenshot(f.name, api=self.api, processes=2) as s:
             s.MAXIMUM_BATCH_SIZE = 2
             s.process()
     self.server.terminate()
     _, err = self.server.communicate()
     sizes = self._batch_sizes(err)
     self.assertSetEqual(set(sizes), {1, 2})
Beispiel #6
0
 def test_errors(self):
     with tempfile.NamedTemporaryFile() as f:
         f.write(b'invalid,0001\n')
         f.write(b'data:image/png;base64,0002\n')
         f.write(b'data:image/png;base64,0\n')
         f.flush()
         with self.assertLogs() as lm:
             with WPTScreenshot(f.name, api=self.api, processes=1) as s:
                 s.process()
     self.server.terminate()
     _, err = self.server.communicate()
     sizes = self._batch_sizes(err)
     self.assertListEqual(sizes, [1])
     self.assertListEqual(lm.output, [
         'ERROR:wptscreenshot:Invalid data URI: invalid,0001',
         'ERROR:wptscreenshot:Invalid base64: data:image/png;base64,0'
     ])
Beispiel #7
0
def _upload_screenshots(processor):
    for screenshot in processor.screenshots:
        with WPTScreenshot(screenshot,
                           processor.report.run_info,
                           auth=processor.auth) as s:
            s.process()