def test_model_co_group_by_key_tuple(self): email_list = [['a', '*****@*****.**'], ['b', '*****@*****.**']] phone_list = [['a', 'x4312'], ['b', 'x8452']] result_path = self.create_temp_file() snippets.model_co_group_by_key_tuple(email_list, phone_list, result_path) expect = ['a; [email protected]; x4312', 'b; [email protected]; x8452'] self.assertEqual(expect, self.get_output(result_path))
def test_model_co_group_by_key_tuple(self): email_list = [['a', '*****@*****.**'], ['b', '*****@*****.**']] phone_list = [['a', 'x4312'], ['b', 'x8452']] result_path = self.create_temp_file() snippets.model_co_group_by_key_tuple(email_list, phone_list, result_path) expect = ['a; [email protected]; x4312', 'b; [email protected]; x8452'] self.assertEqual(expect, self.get_output(result_path))
def test_model_co_group_by_key_tuple(self): # [START model_group_by_key_cogroupbykey_tuple_inputs] email_list = [ ('amy', '*****@*****.**'), ('carl', '*****@*****.**'), ('julia', '*****@*****.**'), ('carl', '*****@*****.**'), ] phone_list = [ ('amy', '111-222-3333'), ('james', '222-333-4444'), ('amy', '333-444-5555'), ('carl', '444-555-6666'), ] # [END model_group_by_key_cogroupbykey_tuple_inputs] result_path = self.create_temp_file() snippets.model_co_group_by_key_tuple(email_list, phone_list, result_path) # [START model_group_by_key_cogroupbykey_tuple_outputs] contact_lines = [ "amy; ['*****@*****.**']; ['111-222-3333', '333-444-5555']", "carl; ['*****@*****.**', '*****@*****.**']; ['444-555-6666']", "james; []; ['222-333-4444']", "julia; ['*****@*****.**']; []", ] # [END model_group_by_key_cogroupbykey_tuple_outputs] self.assertEqual(contact_lines, self.get_output(result_path))
def test_model_co_group_by_key_tuple(self): with TestPipeline() as p: # [START model_group_by_key_cogroupbykey_tuple_inputs] emails_list = [ ('amy', '*****@*****.**'), ('carl', '*****@*****.**'), ('julia', '*****@*****.**'), ('carl', '*****@*****.**'), ] phones_list = [ ('amy', '111-222-3333'), ('james', '222-333-4444'), ('amy', '333-444-5555'), ('carl', '444-555-6666'), ] emails = p | 'CreateEmails' >> beam.Create(emails_list) phones = p | 'CreatePhones' >> beam.Create(phones_list) # [END model_group_by_key_cogroupbykey_tuple_inputs] result_path = self.create_temp_file() snippets.model_co_group_by_key_tuple(emails, phones, result_path) # [START model_group_by_key_cogroupbykey_tuple_outputs] results = [ ( 'amy', { 'emails': ['*****@*****.**'], 'phones': ['111-222-3333', '333-444-5555'] }), ( 'carl', { 'emails': ['*****@*****.**', '*****@*****.**'], 'phones': ['444-555-6666'] }), ('james', { 'emails': [], 'phones': ['222-333-4444'] }), ('julia', { 'emails': ['*****@*****.**'], 'phones': [] }), ] # [END model_group_by_key_cogroupbykey_tuple_outputs] # [START model_group_by_key_cogroupbykey_tuple_formatted_outputs] formatted_results = [ "amy; ['*****@*****.**']; ['111-222-3333', '333-444-5555']", "carl; ['*****@*****.**', '*****@*****.**']; ['444-555-6666']", "james; []; ['222-333-4444']", "julia; ['*****@*****.**']; []", ] # [END model_group_by_key_cogroupbykey_tuple_formatted_outputs] expected_results = [ '%s; %s; %s' % (name, info['emails'], info['phones']) for name, info in results ] self.assertEqual(expected_results, formatted_results) self.assertEqual(formatted_results, self.get_output(result_path))
def test_model_co_group_by_key_tuple(self): with TestPipeline() as p: # [START model_group_by_key_cogroupbykey_tuple_inputs] emails_list = [ ('amy', '*****@*****.**'), ('carl', '*****@*****.**'), ('julia', '*****@*****.**'), ('carl', '*****@*****.**'), ] phones_list = [ ('amy', '111-222-3333'), ('james', '222-333-4444'), ('amy', '333-444-5555'), ('carl', '444-555-6666'), ] emails = p | 'CreateEmails' >> beam.Create(emails_list) phones = p | 'CreatePhones' >> beam.Create(phones_list) # [END model_group_by_key_cogroupbykey_tuple_inputs] result_path = self.create_temp_file() snippets.model_co_group_by_key_tuple(emails, phones, result_path) # [START model_group_by_key_cogroupbykey_tuple_outputs] results = [ ('amy', { 'emails': ['*****@*****.**'], 'phones': ['111-222-3333', '333-444-5555']}), ('carl', { 'emails': ['*****@*****.**', '*****@*****.**'], 'phones': ['444-555-6666']}), ('james', { 'emails': [], 'phones': ['222-333-4444']}), ('julia', { 'emails': ['*****@*****.**'], 'phones': []}), ] # [END model_group_by_key_cogroupbykey_tuple_outputs] # [START model_group_by_key_cogroupbykey_tuple_formatted_outputs] formatted_results = [ "amy; ['*****@*****.**']; ['111-222-3333', '333-444-5555']", "carl; ['*****@*****.**', '*****@*****.**']; ['444-555-6666']", "james; []; ['222-333-4444']", "julia; ['*****@*****.**']; []", ] # [END model_group_by_key_cogroupbykey_tuple_formatted_outputs] expected_results = ['%s; %s; %s' % (name, info['emails'], info['phones']) for name, info in results] self.assertEqual(expected_results, formatted_results) self.assertEqual(formatted_results, self.get_output(result_path))