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))
示例#2
0
 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))
示例#3
0
 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))
示例#4
0
  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))