def test_add_member_ok(
         self, mock_get_db_conf, mock_get_db_connection, mock_get_member_class_id,
         mock_member_exists, mock_get_utc_time, mock_add_identifier, mock_add_client,
         mock_add_client_name):
     with self.assertLogs(member.LOGGER, level='INFO') as cm:
         self.assertEqual(
             {
                 'code': 'CREATED', 'http_status': 201,
                 'msg': 'New member added'},
             member.add_member('MEMBER_CODE', 'MEMBER_NAME', 'MEMBER_CLASS', 'JSON_DATA'))
         self.assertEqual([
             'INFO:member:Added new member: member_code=MEMBER_CODE, '
             'member_name=MEMBER_NAME, member_class=MEMBER_CLASS'], cm.output)
         mock_get_db_conf.assert_called_with()
         mock_get_db_connection.assert_called_with({
             'database': 'centerui_production', 'password': '******',
             'username': '******'})
         mock_get_member_class_id.assert_called_with(
             mock_get_db_connection().__enter__().cursor().__enter__(), 'MEMBER_CLASS')
         mock_member_exists.assert_called_with(
             mock_get_db_connection().__enter__().cursor().__enter__(), 'MEMBER_CODE')
         mock_get_utc_time.assert_called_with(
             mock_get_db_connection().__enter__().cursor().__enter__())
         mock_add_identifier.assert_called_with(
             mock_get_db_connection().__enter__().cursor().__enter__(),
             member_class='MEMBER_CLASS', member_code='MEMBER_CODE', utc_time='TIME')
         mock_add_client.assert_called_with(
             mock_get_db_connection().__enter__().cursor().__enter__(),
             member_code='MEMBER_CODE', member_name='MEMBER_NAME', class_id=12345,
             identifier_id=123456, utc_time='TIME')
         mock_add_client_name.assert_called_with(
             mock_get_db_connection().__enter__().cursor().__enter__(),
             member_name='MEMBER_NAME', identifier_id=123456, utc_time='TIME')
 def test_add_member_no_username(self, mock_get_db_conf, mock_get_db_connection):
     with self.assertLogs(member.LOGGER, level='INFO') as cm:
         self.assertEqual(
             {
                 'code': 'DB_CONF_ERROR', 'http_status': 500,
                 'msg': 'Cannot access database configuration'},
             member.add_member('MEMBER_CODE', 'MEMBER_NAME', 'MEMBER_CLASS', 'JSON_DATA'))
         self.assertEqual(
             ['ERROR:member:DB_CONF_ERROR: Cannot access database configuration'], cm.output)
         mock_get_db_conf.assert_called_with()
         mock_get_db_connection.assert_not_called()
 def test_add_member_no_class(
         self, mock_get_db_conf, mock_get_db_connection, mock_get_member_class_id):
     with self.assertLogs(member.LOGGER, level='INFO') as cm:
         self.assertEqual(
             {
                 'code': 'INVALID_MEMBER_CLASS', 'http_status': 400,
                 'msg': 'Provided Member Class does not exist'},
             member.add_member('MEMBER_CODE', 'MEMBER_NAME', 'MEMBER_CLASS', 'JSON_DATA'))
         self.assertEqual([
             'WARNING:member:INVALID_MEMBER_CLASS: Provided Member Class does not exist '
             '(Request: JSON_DATA)'], cm.output)
         mock_get_db_conf.assert_called_with()
         mock_get_db_connection.assert_called_with({
             'database': 'centerui_production', 'password': '******',
             'username': '******'})
         mock_get_member_class_id.assert_called_with(
             mock_get_db_connection().__enter__().cursor().__enter__(), 'MEMBER_CLASS')
 def test_add_member_member_exists(
         self, mock_get_db_conf, mock_get_db_connection, mock_get_member_class_id,
         mock_member_exists):
     with self.assertLogs(member.LOGGER, level='INFO') as cm:
         self.assertEqual(
             {
                 'code': 'MEMBER_EXISTS', 'http_status': 409,
                 'msg': 'Provided Member already exists'},
             member.add_member('MEMBER_CODE', 'MEMBER_NAME', 'MEMBER_CLASS', 'JSON_DATA'))
         self.assertEqual([
             'WARNING:member:MEMBER_EXISTS: Provided Member already exists (Request: '
             'JSON_DATA)'], cm.output)
         mock_get_db_conf.assert_called_with()
         mock_get_db_connection.assert_called_with({
             'database': 'centerui_production', 'password': '******',
             'username': '******'})
         mock_get_member_class_id.assert_called_with(
             mock_get_db_connection().__enter__().cursor().__enter__(), 'MEMBER_CLASS')
         mock_member_exists.assert_called_with(
             mock_get_db_connection().__enter__().cursor().__enter__(), 'MEMBER_CODE')