def test_commas_in_counters(self): # commas should be replaced with semicolons mr_job = MRJob().sandbox() mr_job.increment_counter("Bad items", "a, b, c") mr_job.increment_counter("girl, interrupted", "movie") self.assertEqual(mr_job.parse_counters(), {"Bad items": {"a; b; c": 1}, "girl; interrupted": {"movie": 1}})
def test_parse_counters(self): mr_job = MRJob().sandbox() mr_job.increment_counter('Foo', 'Bar') mr_job.increment_counter('Foo', 'Bar') mr_job.increment_counter('Foo', 'Baz', 20) self.assertEqual(mr_job.parse_counters(), {'Foo': {'Bar': 2, 'Baz': 20}})
def test_commas_in_counters(self): # commas should be replaced with semicolons mr_job = MRJob().sandbox() mr_job.increment_counter("Bad items", "a, b, c") mr_job.increment_counter("girl, interrupted", "movie") parsed_stderr = parse_mr_job_stderr(mr_job.stderr.getvalue()) self.assertEqual(parsed_stderr["counters"], {"Bad items": {"a; b; c": 1}, "girl; interrupted": {"movie": 1}})
def test_commas_in_counters(self): # commas should be replaced with semicolons mr_job = MRJob().sandbox() mr_job.increment_counter('Bad items', 'a, b, c') mr_job.increment_counter('girl, interrupted', 'movie') assert_equal(mr_job.parse_counters(), {'Bad items': {'a; b; c': 1}, 'girl; interrupted': {'movie': 1}})
def test_parse_counters(self): mr_job = MRJob().sandbox() mr_job.increment_counter('Foo', 'Bar') mr_job.increment_counter('Foo', 'Bar') mr_job.increment_counter('Foo', 'Baz', 20) with logger_disabled('mrjob.job'): self.assertEqual(mr_job.parse_counters(), {'Foo': {'Bar': 2, 'Baz': 20}})
def test_commas_in_counters(self): # commas should be replaced with semicolons mr_job = MRJob().sandbox() mr_job.increment_counter('Bad items', 'a, b, c') mr_job.increment_counter('girl, interrupted', 'movie') self.assertEqual(mr_job.parse_counters(), {'Bad items': {'a; b; c': 1}, 'girl; interrupted': {'movie': 1}})
def test_commas_in_counters(self): # commas should be replaced with semicolons mr_job = MRJob().sandbox() mr_job.increment_counter('Bad items', 'a, b, c') mr_job.increment_counter('girl, interrupted', 'movie') parsed_stderr = parse_mr_job_stderr(mr_job.stderr.getvalue()) self.assertEqual(parsed_stderr['counters'], {'Bad items': {'a; b; c': 1}, 'girl; interrupted': {'movie': 1}})
def test_parse_counters(self): mr_job = MRJob().sandbox() mr_job.increment_counter('Foo', 'Bar') mr_job.increment_counter('Foo', 'Bar') mr_job.increment_counter('Foo', 'Baz', 20) self.assertEqual(mr_job.parse_counters(), {'Foo': { 'Bar': 2, 'Baz': 20 }})
def test_counters_and_status(self): mr_job = MRJob().sandbox() mr_job.increment_counter('Foo', 'Bar') mr_job.set_status('Initializing qux gradients...') mr_job.increment_counter('Foo', 'Bar') mr_job.increment_counter('Foo', 'Baz', 20) mr_job.set_status('Sorting metasyntactic variables...') parsed_stderr = parse_mr_job_stderr(mr_job.stderr.getvalue()) self.assertEqual( parsed_stderr, { 'counters': { 'Foo': { 'Bar': 2, 'Baz': 20 } }, 'statuses': [ 'Initializing qux gradients...', 'Sorting metasyntactic variables...' ], 'other': [] })
def test_counters_and_status(self): mr_job = MRJob().sandbox() mr_job.increment_counter('Foo', 'Bar') mr_job.set_status('Initializing qux gradients...') mr_job.increment_counter('Foo', 'Bar') mr_job.increment_counter('Foo', 'Baz', 20) mr_job.set_status('Sorting metasyntactic variables...') parsed_stderr = parse_mr_job_stderr(mr_job.stderr.getvalue()) self.assertEqual( parsed_stderr, { 'counters': { 'Foo': { 'Bar': 2, 'Baz': 20 } }, 'statuses': [ 'Initializing qux gradients...', 'Sorting metasyntactic variables...' ], 'other': [] }) # make sure parse_counters() works self.assertEqual(mr_job.parse_counters(), parsed_stderr['counters'])
def test_negative_and_zero_counters(self): mr_job = MRJob().sandbox() mr_job.increment_counter("Foo", "Bar", -1) mr_job.increment_counter("Foo", "Baz") mr_job.increment_counter("Foo", "Baz", -1) mr_job.increment_counter("Qux", "Quux", 0) self.assertEqual(mr_job.parse_counters(), {"Foo": {"Bar": -1, "Baz": 0}, "Qux": {"Quux": 0}})
def test_negative_and_zero_counters(self): mr_job = MRJob().sandbox() mr_job.increment_counter('Foo', 'Bar', -1) mr_job.increment_counter('Foo', 'Baz') mr_job.increment_counter('Foo', 'Baz', -1) mr_job.increment_counter('Qux', 'Quux', 0) assert_equal(mr_job.parse_counters(), {'Foo': {'Bar': -1, 'Baz': 0}, 'Qux': {'Quux': 0}})
def test_negative_and_zero_counters(self): mr_job = MRJob().sandbox() mr_job.increment_counter("Foo", "Bar", -1) mr_job.increment_counter("Foo", "Baz") mr_job.increment_counter("Foo", "Baz", -1) mr_job.increment_counter("Qux", "Quux", 0) parsed_stderr = parse_mr_job_stderr(mr_job.stderr.getvalue()) self.assertEqual(parsed_stderr["counters"], {"Foo": {"Bar": -1, "Baz": 0}, "Qux": {"Quux": 0}})
def test_negative_and_zero_counters(self): mr_job = MRJob().sandbox() mr_job.increment_counter('Foo', 'Bar', -1) mr_job.increment_counter('Foo', 'Baz') mr_job.increment_counter('Foo', 'Baz', -1) mr_job.increment_counter('Qux', 'Quux', 0) self.assertEqual(mr_job.parse_counters(), {'Foo': {'Bar': -1, 'Baz': 0}, 'Qux': {'Quux': 0}})
def test_negative_and_zero_counters(self): mr_job = MRJob().sandbox() mr_job.increment_counter('Foo', 'Bar', -1) mr_job.increment_counter('Foo', 'Baz') mr_job.increment_counter('Foo', 'Baz', -1) mr_job.increment_counter('Qux', 'Quux', 0) parsed_stderr = parse_mr_job_stderr(mr_job.stderr.getvalue()) self.assertEqual(parsed_stderr['counters'], {'Foo': {'Bar': -1, 'Baz': 0}, 'Qux': {'Quux': 0}})
def test_counters_and_status(self): mr_job = MRJob().sandbox() mr_job.increment_counter("Foo", "Bar") mr_job.set_status("Initializing qux gradients...") mr_job.increment_counter("Foo", "Bar") mr_job.increment_counter("Foo", "Baz", 20) mr_job.set_status("Sorting metasyntactic variables...") parsed_stderr = parse_mr_job_stderr(mr_job.stderr.getvalue()) self.assertEqual( parsed_stderr, { "counters": {"Foo": {"Bar": 2, "Baz": 20}}, "statuses": ["Initializing qux gradients...", "Sorting metasyntactic variables..."], "other": [], }, )
def test_unicode_counter(self): mr_job = MRJob().sandbox() # shouldn't raise an exception mr_job.increment_counter(u'💩', 'x', 1)