def test_default_protocol(self): job = MRJob() data = iter([b'1\t2', b'\n{"3": ', b'4}\t"fi', b've"\n']) self.assertEqual( list(job.parse_output(data)), [(1, 2), ({'3': 4}, 'five')])
def test_default(self): # test parsing JSON mr_job = MRJob() output = '0\t1\n"a"\t"b"\n' mr_job.stdout = StringIO(output) self.assertEqual(mr_job.parse_output(), [(0, 1), ('a', 'b')]) # verify that stdout is not cleared self.assertEqual(mr_job.stdout.getvalue(), output)
def test_protocol_instance(self): # see if we can use the repr protocol mr_job = MRJob() output = "0\t1\n['a', 'b']\tset(['c', 'd'])\n" mr_job.stdout = StringIO(output) self.assertEqual(mr_job.parse_output(ReprProtocol()), [(0, 1), (["a", "b"], set(["c", "d"]))]) # verify that stdout is not cleared self.assertEqual(mr_job.stdout.getvalue(), output)
def test_protocol_instance(self): # see if we can use the repr protocol mr_job = MRJob() output = "0\t1\n['a', 'b']\tset(['c', 'd'])\n" mr_job.stdout = StringIO(output) self.assertEqual(mr_job.parse_output(ReprProtocol()), [(0, 1), (['a', 'b'], set(['c', 'd']))]) # verify that stdout is not cleared self.assertEqual(mr_job.stdout.getvalue(), output)
def test_bytes_value_protocol(self): job = MRJob() job.OUTPUT_PROTOCOL = BytesValueProtocol data = iter([b'one\nt', b'wo\nthree\n', b'four\nfive\n']) self.assertEqual(list(job.parse_output(data)), [(None, b'one\n'), (None, b'two\n'), (None, b'three\n'), (None, b'four\n'), (None, b'five\n')])
def test_parse_output(self): # test parsing JSON mr_job = MRJob() output = b'0\t1\n"a"\t"b"\n' mr_job.stdout = BytesIO(output) with logger_disabled('mrjob.job'): self.assertEqual(mr_job.parse_output(), [(0, 1), ('a', 'b')]) # verify that stdout is not cleared self.assertEqual(mr_job.stdout.getvalue(), output)
def test_deprecated_protocol_aliases(self): # see if we can use the repr protocol mr_job = MRJob() output = "0\t1\n['a', 'b']\tset(['c', 'd'])\n" mr_job.stdout = StringIO(output) assert_equal(mr_job.parse_output('repr'), [(0, 1), (['a', 'b'], set(['c', 'd']))]) # verify that stdout is not cleared assert_equal(mr_job.stdout.getvalue(), output)
def test_parse_output_with_protocol_instance(self): # see if we can use the repr protocol mr_job = MRJob() output = b"0\t1\n['a', 'b']\tset(['c', 'd'])\n" mr_job.stdout = BytesIO(output) with logger_disabled('mrjob.job'): self.assertEqual(mr_job.parse_output(ReprProtocol()), [(0, 1), (['a', 'b'], set(['c', 'd']))]) # verify that stdout is not cleared self.assertEqual(mr_job.stdout.getvalue(), output)
def test_bytes_value_protocol(self): job = MRJob() job.OUTPUT_PROTOCOL = BytesValueProtocol data = iter([b'one\nt', b'wo\nthree\n', b'four\nfive\n']) self.assertEqual( list(job.parse_output(data)), [(None, b'one\n'), (None, b'two\n'), (None, b'three\n'), (None, b'four\n'), (None, b'five\n')])