def test_update_faq_succeeds(self): new_role = RoleFactory.create(name='admin') new_user_role = UserRoleFactory.create(user_id=self.user_id(), role=new_role) faq = FaqFactory() update_faq_info = FaqFactory.build() faq_data = dict(question=update_faq_info.question, answer=update_faq_info.answer) response = self.client().patch( self.make_url(f"/faqs/{faq.id}"), headers=self.headers(), data=self.encode_to_json_string(faq_data)) response_json = self.decode_from_json_string( response.data.decode('utf-8')) self.assertEqual(response.status_code, 201) self.assertEqual(response_json['msg'], 'OK') self.assertEqual(response_json['payload']['faq']['question'], update_faq_info.question) self.assertEqual(response_json['payload']['faq']['answer'], update_faq_info.answer) self.assertEqual(response_json['payload']['faq']['question'], faq.question) self.assertEqual(response_json['payload']['faq']['answer'], faq.answer)
def test_update_faq_method_handle_not_found(self, mock_request_params_dict): with self.app.app_context(): faq = FaqFactory() update_faq_info = FaqFactory.build() mock_request_params_dict.return_value = { 'question': update_faq_info.question } faq_controller = FaqController(self.request_context) response = faq_controller.update_faq(1000) self.assertEqual(response.status_code, 404) self.assertEqual(response.get_json()['msg'], 'FAQ Not Found')
def test_update_faq_method_succeeds(self, mock_request_params_dict): with self.app.app_context(): faq = FaqFactory() update_faq_info = FaqFactory.build() mock_request_params_dict.return_value = { 'question': update_faq_info.question } faq_controller = FaqController(self.request_context) response = faq_controller.update_faq(faq.id) self.assertEqual(response.status_code, 201) self.assertEqual(response.get_json()['msg'], 'OK') self.assertEqual(response.get_json()['payload']['faq']['question'], update_faq_info.question)
def test_new_faq_method_returns_new_faq_object(self): faq = FaqFactory.build() new_faq = self.repo.new_faq(faq.category, faq.question, faq.answer) self.assertIsInstance(new_faq, Faq) self.assertEqual(new_faq.category, faq.category) self.assertEqual(new_faq.question, faq.question) self.assertEqual(new_faq.answer, faq.answer)
def test_delete_faq_method_handles_not_found(self): with self.app.app_context(): faq = FaqFactory.create(is_deleted=True) faq_controller = FaqController(self.request_context) response = faq_controller.delete_faq(faq.id) self.assertEqual(response.status_code, 404) self.assertEqual(response.get_json()['msg'], 'FAQ Not Found')
def test_list_faq_method_returns_faqs(self): with self.app.app_context(): new_faq = FaqFactory.create() faq_controller = FaqController(self.request_context) response = faq_controller.list_faqs() self.assertEqual(response.status_code, 200) self.assertEqual(response.get_json()['msg'], 'OK') self.assertEqual(response.get_json()['payload']['faqs'][0]['id'], new_faq.id)
def test_delete_faq_method_succeeds(self): with self.app.app_context(): faq = FaqFactory() faq_controller = FaqController(self.request_context) response = faq_controller.delete_faq(faq.id) self.assertEqual(response.status_code, 200) self.assertEqual(response.get_json()['msg'], 'FAQ deleted successfully')
def test_get_faq_succeeds(self): new_faq = FaqFactory.create() response = self.client().get(self.make_url("/faqs/"), query_string={'id': str(new_faq.id)}, headers=self.headers()) response_json = self.decode_from_json_string( response.data.decode('utf-8')) self.assert200(response) self.assertEqual(response_json['msg'], 'OK') self.assertEqual(response_json['payload']['faqs'][0]['id'], new_faq.id)
def test_create_faq_method_handles_duplicate_faq_creation( self, mock_request_params): with self.app.app_context(): faq = FaqFactory() mock_request_params.return_value = [ faq.category, faq.question, faq.answer ] faq_controller = FaqController(self.request_context) response = faq_controller.create_faq() self.assertEqual(response.status_code, 400) self.assertEqual( response.get_json()['msg'], "Question '{}' already exists".format(faq.question))
def test_delete_faq_succeeds(self): new_role = RoleFactory.create(name='admin') new_user_role = UserRoleFactory.create(user_id=self.user_id(), role=new_role) faq = FaqFactory() response = self.client().delete(self.make_url(f"/faqs/{faq.id}"), headers=self.headers()) response_json = self.decode_from_json_string( response.data.decode('utf-8')) self.assertEqual(response.status_code, 200) self.assertEqual(response_json['msg'], 'FAQ deleted successfully')
def test_create_faq_method_succeeds(self, mock_request_params): with self.app.app_context(): faq = FaqFactory.build() mock_request_params.return_value = [ faq.category, faq.question, faq.answer ] faq_controller = FaqController(self.request_context) response = faq_controller.create_faq() self.assertEqual(response.status_code, 201) self.assertEqual(response.get_json()['msg'], 'OK') self.assertEqual(response.get_json()['payload']['faq']['question'], faq.question) self.assertEqual(response.get_json()['payload']['faq']['answer'], faq.answer)