Exemplo n.º 1
0
    def test_handles_errors_figuring_out_window_size(self, mock_makedirs):
        mock_browser = Mock()
        mock_browser.find_element_by_tag_name.side_effect = KeyError

        def test_func(self, *args, **kwargs):
            raise TypeError('a type error')

        class ExampleTest(object):
            browsers = [mock_browser]
            SNAPSHOT_PATH = '/my-path'

            def id(self):
                return 'test-id'

        decorated = snapshot_on_error(test_func)

        with self.assertRaises(TypeError):
            decorated(ExampleTest())

        self.assertEqual(
            mock_makedirs.call_args, call(ExampleTest.SNAPSHOT_PATH))
        self.assertEqual(
            mock_browser.find_element_by_tag_name.call_args, call('body'))
        self.assertEqual(mock_browser.execute_script.call_args_list, [])
        self.assertEqual(
            mock_browser.get_screenshot_as_file.call_args_list, [])
Exemplo n.º 2
0
    def test_iterates_over_testcases_browsers(self, mock_makedirs):
        mock_browser = Mock()
        mock_browser.get_window_size.return_value = {
            'height': 100
        }
        mock_browser.find_element_by_tag_name.return_value.size = {
            'height': 340
        }

        def test_func(self, *args, **kwargs):
            raise TypeError()

        class ExampleTest(object):
            browsers = [mock_browser]
            SNAPSHOT_PATH = '/my-path'

            def id(self):
                return 'test-id'

        decorated = snapshot_on_error(test_func)

        with self.assertRaises(TypeError):
            decorated(ExampleTest())

        self.assertEqual(
            mock_makedirs.call_args, call(ExampleTest.SNAPSHOT_PATH))
        self.assertEqual(
            mock_browser.find_element_by_tag_name.call_args, call('body'))
        self.assertEqual(
            mock_browser.execute_script.call_args_list,
            [
                call('window.scrollTo(0,0)'),
                call('window.scrollTo(0,100)'),
                call('window.scrollTo(0,200)'),
                call('window.scrollTo(0,300)')
            ]
        )
        self.assertEqual(
            mock_browser.get_screenshot_as_file.call_args_list,
            [
                call('/my-path/test-id_browser-0_page-0.png'),
                call('/my-path/test-id_browser-0_page-1.png'),
                call('/my-path/test-id_browser-0_page-2.png'),
                call('/my-path/test-id_browser-0_page-3.png')
            ]
        )