def test_response_with_no_status_should_keep_running_with_no_error( self, mock_socket, mock_wait_for_event): full_url = 'https://ci.prontomarketing.com/job/04-Prontoworld-Deploy-' full_url += 'Dev%20-%2010.3.0.20/731/' response = { 'name': '00-Prontoworld-Checkin - 10.3.0.20', 'url': 'job/00-Prontoworld-Checkin%20-%2010.3.0.20/', 'build': { 'full_url': full_url, 'number': 1992, 'phase': 'COMPLETED', 'url': 'job/00-Prontoworld-Checkin%20-%2010.3.0.20/1992/', 'scm': {}, 'log': '', 'artifacts': {} } } data = (json.dumps(response), ('10.3.0.20', 44450)) mock_socket.socket.return_value.recvfrom.side_effect = [data, data] mock_wait_for_event.side_effect = [True, True, False] jenkins_wait_for_event() self.assertEqual(mock_wait_for_event.call_count, 3) expected_calls = [call(8 * 1024), call(8 * 1024)] mock_socket.socket.return_value.recvfrom.assert_has_calls( expected_calls)
def test_when_build_passes_it_should_not_get_any_responsible_user( self, mock_socket, mock_wait_for_event, mock_get_responsible_user): full_url = 'https://ci.prontomarketing.com/job/04-Prontoworld-Deploy-' full_url += 'Dev%20-%2010.3.0.20/731/' response = { 'name': '00-Prontoworld-Checkin - 10.3.0.20', 'url': 'job/00-Prontoworld-Checkin%20-%2010.3.0.20/', 'build': { 'full_url': full_url, 'number': 1992, 'phase': 'COMPLETED', 'status': 'SUCCESS', 'url': 'job/00-Prontoworld-Checkin%20-%2010.3.0.20/1992/', 'scm': { 'url': '[email protected]:prontodev/pronto-dashboard.git', 'branch': 'origin/develop', 'commit': '067169c64bfe4cfe203537ccf05c9e71e7378921' }, 'log': '', 'artifacts': {} } } data = (json.dumps(response), ('10.3.0.20', 44450)) mock_socket.socket.return_value.recvfrom.return_value = data mock_wait_for_event.side_effect = [True, False] jenkins_wait_for_event() self.assertEqual(mock_wait_for_event.call_count, 2) mock_socket.socket.return_value.recvfrom.assert_called_once_with(8 * 1024) self.assertEqual(mock_get_responsible_user.call_count, 0)
def test_jenkins_wait_for_event_should_always_try_to_receive_data( self, mock_socket, mock_wait_for_event): full_url = 'https://ci.prontomarketing.com/job/04-Prontoworld-Deploy-' full_url += 'Dev%20-%2010.3.0.20/731/' response = { 'name': '00-Prontoworld-Checkin - 10.3.0.20', 'url': 'job/00-Prontoworld-Checkin%20-%2010.3.0.20/', 'build': { 'full_url': full_url, 'number': 1992, 'phase': 'COMPLETED', 'status': 'SUCCESS', 'url': 'job/00-Prontoworld-Checkin%20-%2010.3.0.20/1992/', 'scm': { 'url': '[email protected]:prontodev/pronto-dashboard.git', 'branch': 'origin/develop', 'commit': '067169c64bfe4cfe203537ccf05c9e71e7378921' }, 'log': '', 'artifacts': {} } } data = (json.dumps(response), ('10.3.0.20', 44450)) mock_socket.socket.return_value.recvfrom.side_effect = [data, data] mock_wait_for_event.side_effect = [True, True, False] jenkins_wait_for_event() self.assertEqual(mock_wait_for_event.call_count, 3) expected_calls = [call(8 * 1024), call(8 * 1024)] mock_socket.socket.return_value.recvfrom.assert_has_calls( expected_calls)
def test_when_build_fails_yell_at_should_take_slack_username( self, mock_socket, mock_wait_for_event, mock_get_responsible_user, mock_yell_at): full_url = 'https://ci.prontomarketing.com/job/03-Prontoworld-' full_url += 'AcceptanceTests-Group/193/' response = { 'name': '03-Prontoworld-AcceptanceTests-Group', 'url': 'job/03-Prontoworld-AcceptanceTests-Group/', 'build': { 'full_url': full_url, 'number': 193, 'phase': 'COMPLETED', 'status': 'FAILURE', 'url': 'job/03-Prontoworld-AcceptanceTests-Group/193/', 'scm': {}, 'log': '', 'artifacts': {} } } data = (json.dumps(response), ('10.3.0.20', 48580)) mock_socket.socket.return_value.recvfrom.return_value = data mock_wait_for_event.side_effect = [True, False] mock_get_responsible_user.return_value = 'Sandy S' jenkins_wait_for_event() mock_yell_at.assert_called_once_with('sandy')
def test_when_build_fails_yell_at_should_take_slack_username( self, mock_socket, mock_wait_for_event, mock_get_responsible_user, mock_yell_at ): full_url = 'https://ci.prontomarketing.com/job/03-Prontoworld-' full_url += 'AcceptanceTests-Group/193/' response = { 'name': '03-Prontoworld-AcceptanceTests-Group', 'url': 'job/03-Prontoworld-AcceptanceTests-Group/', 'build': { 'full_url': full_url, 'number': 193, 'phase': 'COMPLETED', 'status': 'FAILURE', 'url': 'job/03-Prontoworld-AcceptanceTests-Group/193/', 'scm': {}, 'log': '', 'artifacts':{} } } data = ( json.dumps(response), ('10.3.0.20', 48580) ) mock_socket.socket.return_value.recvfrom.return_value = data mock_wait_for_event.side_effect = [True, False] mock_get_responsible_user.return_value = 'Sandy S' jenkins_wait_for_event() mock_yell_at.assert_called_once_with('sandy')
def test_jenkins_wait_for_event_should_listen_to_udp_port_22222( self, mock_socket, mock_wait_for_event): mock_wait_for_event.side_effect = [False] jenkins_wait_for_event() mock_socket.socket.assert_called_once_with(settings.AF_INET, settings.SOCK_DGRAM) mock_socket.socket.return_value.bind.assert_called_once_with( ('', settings.JENKINS_NOTIFICATION_UDP_PORT))
def test_jenkins_wait_for_event_should_listen_to_udp_port_22222( self, mock_socket, mock_wait_for_event ): mock_wait_for_event.side_effect = [False] jenkins_wait_for_event() mock_socket.socket.assert_called_once_with( settings.AF_INET, settings.SOCK_DGRAM ) mock_socket.socket.return_value.bind.assert_called_once_with( ('', settings.JENKINS_NOTIFICATION_UDP_PORT) )
def test_jenkins_wait_for_event_should_always_try_to_receive_data( self, mock_socket, mock_wait_for_event ): full_url = 'https://ci.prontomarketing.com/job/04-Prontoworld-Deploy-' full_url += 'Dev%20-%2010.3.0.20/731/' response = { 'name': '00-Prontoworld-Checkin - 10.3.0.20', 'url': 'job/00-Prontoworld-Checkin%20-%2010.3.0.20/', 'build': { 'full_url': full_url, 'number': 1992, 'phase': 'COMPLETED', 'status': 'SUCCESS', 'url': 'job/00-Prontoworld-Checkin%20-%2010.3.0.20/1992/', 'scm': { 'url': '[email protected]:prontodev/pronto-dashboard.git', 'branch': 'origin/develop', 'commit': '067169c64bfe4cfe203537ccf05c9e71e7378921' }, 'log': '', 'artifacts': {} } } data = ( json.dumps(response), ('10.3.0.20', 44450) ) mock_socket.socket.return_value.recvfrom.side_effect = [ data, data ] mock_wait_for_event.side_effect = [True, True, False] jenkins_wait_for_event() self.assertEqual(mock_wait_for_event.call_count, 3) expected_calls = [ call(8 * 1024), call(8 * 1024) ] mock_socket.socket.return_value.recvfrom.assert_has_calls( expected_calls )
def test_when_build_passes_it_should_not_get_any_responsible_user( self, mock_socket, mock_wait_for_event, mock_get_responsible_user ): full_url = 'https://ci.prontomarketing.com/job/04-Prontoworld-Deploy-' full_url += 'Dev%20-%2010.3.0.20/731/' response = { 'name': '00-Prontoworld-Checkin - 10.3.0.20', 'url': 'job/00-Prontoworld-Checkin%20-%2010.3.0.20/', 'build': { 'full_url': full_url, 'number': 1992, 'phase': 'COMPLETED', 'status': 'SUCCESS', 'url': 'job/00-Prontoworld-Checkin%20-%2010.3.0.20/1992/', 'scm': { 'url': '[email protected]:prontodev/pronto-dashboard.git', 'branch': 'origin/develop', 'commit': '067169c64bfe4cfe203537ccf05c9e71e7378921' }, 'log': '', 'artifacts': {} } } data = ( json.dumps(response), ('10.3.0.20', 44450) ) mock_socket.socket.return_value.recvfrom.return_value = data mock_wait_for_event.side_effect = [True, False] jenkins_wait_for_event() self.assertEqual(mock_wait_for_event.call_count, 2) mock_socket.socket.return_value.recvfrom.assert_called_once_with( 8 * 1024 ) self.assertEqual(mock_get_responsible_user.call_count, 0)
def test_response_with_no_status_should_keep_running_with_no_error( self, mock_socket, mock_wait_for_event ): full_url = 'https://ci.prontomarketing.com/job/04-Prontoworld-Deploy-' full_url += 'Dev%20-%2010.3.0.20/731/' response = { 'name': '00-Prontoworld-Checkin - 10.3.0.20', 'url': 'job/00-Prontoworld-Checkin%20-%2010.3.0.20/', 'build': { 'full_url': full_url, 'number': 1992, 'phase': 'COMPLETED', 'url': 'job/00-Prontoworld-Checkin%20-%2010.3.0.20/1992/', 'scm': {}, 'log': '', 'artifacts': {} } } data = ( json.dumps(response), ('10.3.0.20', 44450) ) mock_socket.socket.return_value.recvfrom.side_effect = [ data, data ] mock_wait_for_event.side_effect = [True, True, False] jenkins_wait_for_event() self.assertEqual(mock_wait_for_event.call_count, 3) expected_calls = [ call(8 * 1024), call(8 * 1024) ] mock_socket.socket.return_value.recvfrom.assert_has_calls( expected_calls )