def test_simple_json_endpoint_get_ioerror(self, flat_file_mock): """ Test a GET scenario where an IO error occurs """ flat_file_mock.load.side_effect = IOError() with app.test_request_context(method='GET'): rv = common.simple_json_endpoint('---some--path--') self.assertEqual(rv[1], 500) self.assertEqual(len(flat_file_mock.method_calls), 1)
def test_create_markdown_content_invalid_form(self): with app.test_request_context(method='GET'): form_mock, markdown_mock = self.markdown_content_mocks() form_mock.validate = mock.Mock(return_value=False) rv = common.create_markdown_content(form_mock, markdown_mock) self.assertEqual(rv[1], 403) self.assertEqual(1, form_mock.validate.call_count) self.assertEqual(1, len(form_mock.mock_calls)) self.assertEqual(0, len(markdown_mock.mock_calls))
def test_simple_json_endpoint_post_ioerror(self, flat_file_mock, from_json_mock): """ Test a POST scenario where an IO error occurs """ m = mock.Mock(spec=common.SimpleContentForm) m.data = {'content': 'some-content'} from_json_mock.return_value = m flat_file_mock.return_value.save.side_effect = IOError() with app.test_request_context(method='POST'): rv = common.simple_json_endpoint('---some--path--') self.assertEqual(rv[1], 500) self.assertEqual(len(flat_file_mock.method_calls), 0) self.assertEqual(len(flat_file_mock.mock_calls), 2)
def test_simple_json_endpoint_post_invalid_form(self, flat_file_mock, from_json_mock): """ Test a POST scenario where the submitted payload is invalid """ m = mock.Mock(spec=common.SimpleContentForm) m.data = {'content': 'some-content'} m.validate = mock.Mock(return_value=False) from_json_mock.return_value = m with app.test_request_context(method='POST'): rv = common.simple_json_endpoint('---some--path--') self.assertEqual(rv[1], 403) self.assertEqual(len(flat_file_mock.method_calls), 0) self.assertEqual(len(flat_file_mock.mock_calls), 0)
def test_create_markdown_content_normal(self): with app.test_request_context(method='GET'): form_mock, markdown_mock = self.markdown_content_mocks() form_mock.validate = mock.Mock(return_value=True) rv = common.create_markdown_content(form_mock, markdown_mock) expected = {'status': 'success', 'form': {'some-key': 'some-value', 'slug': 'some-slug'}} self.assertEqual(json.loads(rv.data), expected) self.assertEqual(1, form_mock.validate.call_count) self.assertEqual(1, len(form_mock.mock_calls)) self.assertEqual(1, len(markdown_mock.mock_calls)) self.assertEqual(1, markdown_mock.create.call_count)
def test_save_markdown_content_already_exists(self): with app.test_request_context(method='GET'): form_mock, markdown_mock = self.markdown_content_mocks() form_mock.validate = mock.Mock(return_value=True) markdown_mock.save = mock.Mock(side_effect=common.ContentDoesNotExistsException) rv = common.save_markdown_content(form_mock, markdown_mock) self.assertEqual(rv[1], 409) self.assertEqual(1, form_mock.validate.call_count) self.assertEqual(1, len(form_mock.mock_calls)) self.assertEqual(1, len(markdown_mock.mock_calls)) self.assertEqual(1, markdown_mock.save.call_count)
def test_save_markdown_content_io_error(self): with app.test_request_context(method='GET'): form_mock, markdown_mock = self.markdown_content_mocks() form_mock.validate = mock.Mock(return_value=True) markdown_mock.save = mock.Mock(side_effect=IOError) rv = common.save_markdown_content(form_mock, markdown_mock) self.assertEqual(rv[1], 500) self.assertEqual(1, form_mock.validate.call_count) self.assertEqual(1, len(form_mock.mock_calls)) self.assertEqual(1, len(markdown_mock.mock_calls)) self.assertEqual(1, markdown_mock.save.call_count)
def test_simple_json_endpoint_post_normal(self, flat_file_mock, from_json_mock): """ Test a POST scenario where everything goes well """ m = mock.Mock(spec=common.SimpleContentForm) m.data = {'content': 'some-content'} from_json_mock.return_value = m with app.test_request_context(method='POST'): rv = common.simple_json_endpoint('---some--path--') self.assertEqual(json.loads(rv.data), {'status': 'success', 'form': m.data}) flat_file_mock.return_value.save.assert_has_calls([mock.call('---some--path--')]) self.assertEqual(len(flat_file_mock.method_calls), 0) self.assertEqual(len(flat_file_mock.return_value.method_calls), 1) self.assertEqual(len(flat_file_mock.mock_calls), 2) self.assertEqual(m.validate.call_count, 1)
def test_simple_json_endpoint_get_normal(self, load_mock): """ Test a GET scenario where everything goes well """ load_mock.return_value = common.FlatFile('--file-contents--') with app.test_request_context(method='GET'): rv = common.simple_json_endpoint('---some--path--') self.assertEqual({'content': '--file-contents--'}, json.loads(rv.data))