def test_message_matcher_success(self, mock_get_sub, unsued_mock): self.init_matcher(expected_msg=[b'a', b'b']) mock_sub = mock_get_sub.return_value mock_sub.pull.side_effect = [ create_pull_response([PullResponseMessage(b'a', {})]), create_pull_response([PullResponseMessage(b'b', {})]), ] hc_assert_that(self.mock_presult, self.pubsub_matcher) self.assertEqual(mock_sub.pull.call_count, 2) self.assertEqual(mock_sub.acknowledge.call_count, 2)
def test_message_count_matcher_below_fail(self, mock_get_sub, unused_mock): self.init_counter_matcher(expected_msg_len=1) mock_sub = mock_get_sub.return_value mock_sub.pull.side_effect = [ create_pull_response([PullResponseMessage(b'c', {}), PullResponseMessage(b'd', {})]), ] with self.assertRaises(AssertionError) as error: hc_assert_that(self.mock_presult, self.pubsub_matcher) self.assertEqual(mock_sub.pull.call_count, 1) self.assertIn( '\nExpected: Expected 1 messages.\n but: Got 2 messages.', str(error.exception.args[0]))
def test_message_matcher_mismatch(self, mock_get_sub, unused_mock): self.init_matcher(expected_msg=[b'a']) mock_sub = mock_get_sub.return_value mock_sub.pull.side_effect = [ create_pull_response( [PullResponseMessage(b'c', {}), PullResponseMessage(b'd', {})]), ] with self.assertRaises(AssertionError) as error: hc_assert_that(self.mock_presult, self.pubsub_matcher) self.assertEqual(mock_sub.pull.call_count, 1) self.assertCountEqual([b'c', b'd'], self.pubsub_matcher.messages) self.assertTrue( '\nExpected: Expected 1 messages.\n but: Got 2 messages.' in str(error.exception.args[0])) self.assertEqual(mock_sub.pull.call_count, 1) self.assertEqual(mock_sub.acknowledge.call_count, 1)
def test_message_count_matcher_success(self, mock_get_sub, unused_mock): self.init_counter_matcher(expected_msg_len=15) mock_sub = mock_get_sub.return_value mock_sub.pull.side_effect = [ create_pull_response( [PullResponseMessage(b'a', {'foo': 'bar'}) for _ in range(15)]) ] hc_assert_that(self.mock_presult, self.pubsub_matcher) self.assertEqual(mock_sub.pull.call_count, 1) self.assertEqual(mock_sub.acknowledge.call_count, 1)
def test_message_matcher_attributes_success(self, mock_get_sub, unsued_mock): self.init_matcher(expected_msg=[PubsubMessage(b'a', {'k': 'v'})], with_attributes=True) mock_sub = mock_get_sub.return_value mock_sub.pull.side_effect = [ create_pull_response([PullResponseMessage(b'a', {'k': 'v'})]) ] hc_assert_that(self.mock_presult, self.pubsub_matcher) self.assertEqual(mock_sub.pull.call_count, 1) self.assertEqual(mock_sub.acknowledge.call_count, 1)
def test_message_matcher_attributes_fail(self, mock_get_sub, unsued_mock): self.init_matcher(expected_msg=[PubsubMessage(b'a', {})], with_attributes=True) mock_sub = mock_get_sub.return_value # Unexpected attribute 'k'. mock_sub.pull.side_effect = [ create_pull_response([PullResponseMessage(b'a', {'k': 'v'})]) ] with self.assertRaisesRegex(AssertionError, r'Unexpected'): hc_assert_that(self.mock_presult, self.pubsub_matcher) self.assertEqual(mock_sub.pull.call_count, 1) self.assertEqual(mock_sub.acknowledge.call_count, 1)
def test_message_matcher_strip_fail(self, mock_get_sub, unsued_mock): self.init_matcher(expected_msg=[PubsubMessage(b'a', {'k': 'v'})], with_attributes=True, strip_attributes=['id', 'timestamp']) mock_sub = mock_get_sub.return_value # Message is missing attribute 'timestamp'. mock_sub.pull.side_effect = [create_pull_response([ PullResponseMessage(b'a', {'id': 'foo', 'k': 'v'}) ])] with self.assertRaisesRegex(AssertionError, r'Stripped attributes'): hc_assert_that(self.mock_presult, self.pubsub_matcher) self.assertEqual(mock_sub.pull.call_count, 1) self.assertEqual(mock_sub.acknowledge.call_count, 1)