def test_get_value_with_non_existent_total(self): """`None` is returned for a non-existent total counter.""" args = (57, "h", "d/c/z", "t") key = stats.key_name(*args) kvs = self.connect() self.assertIs(None, kvs.get(key)) self.assertIs(None, stats.get_counter(*args))
def test_get_value_with_non_existent_total(self): """`None` is returned for a non-existent total counter.""" args = (57, "h", "d/c/z", "t") key = stats.key_name(*args) kvs = self.connect() self.assertIs(None, kvs.get(key)) self.assertIs(None, stats.get_counter(*args))
def test_get_value_with_existent_total(self): """The expected value is returned for an existent total counter.""" value = "582" args = (58, "h", "d/d/z", "t") key = stats.key_name(*args) kvs = self.connect() kvs.set(key, value) self.assertEqual(int(value), stats.get_counter(*args))
def test_get_value_with_existent_total(self): """The expected value is returned for an existent total counter.""" value = "582" args = (58, "h", "d/d/z", "t") key = stats.key_name(*args) kvs = self.connect() kvs.set(key, value) self.assertEqual(int(value), stats.get_counter(*args))
def test_set_total(self): """ The total value is set for the given key """ kvs = self.connect() # Specify a 'totals' counter type. key = stats.key_name(33, "h", "a/b/c", "t") stats.set_total(33, "h", "a/b/c", 123) self.assertEqual("123", kvs.get(key))
def test_set_total(self): """ The total value is set for the given key """ kvs = self.connect() # Specify a 'totals' counter type. key = stats.key_name(33, "h", "a/b/c", "t") stats.set_total(33, "h", "a/b/c", 123) self.assertEqual("123", kvs.get(key))
def test_pk_inc_with_existing_incremental(self): """The value is incremented for an existing predefined key.""" job_id = 82 pkey = "cblock" key = stats.key_name(job_id, *stats.STATS_KEYS[pkey]) stats.delete_job_counters(job_id) kvs = self.connect() stats.pk_inc(job_id, pkey) self.assertEqual("1", kvs.get(key))
def test_pk_set_with_existing_total(self): """The value is set correctly for an existing predefined key.""" job_id = 71 pkey = "blocks" key = stats.key_name(job_id, *stats.STATS_KEYS[pkey]) stats.delete_job_counters(job_id) kvs = self.connect() stats.pk_set(job_id, pkey, 717) self.assertEqual("717", kvs.get(key))
def test_pk_set_with_existing_total(self): """The value is set correctly for an existing predefined key.""" job_id = 71 pkey = "blocks" key = stats.key_name(job_id, *stats.STATS_KEYS[pkey]) stats.delete_job_counters(job_id) kvs = self.connect() stats.pk_set(job_id, pkey, 717) self.assertEqual("717", kvs.get(key))
def test_pk_inc_with_existing_incremental(self): """The value is incremented for an existing predefined key.""" job_id = 82 pkey = "cblock" key = stats.key_name(job_id, *stats.STATS_KEYS[pkey]) stats.delete_job_counters(job_id) kvs = self.connect() stats.pk_inc(job_id, pkey) self.assertEqual("1", kvs.get(key))
def test_pk_get_with_existing_incremental(self): """The correct value is obtained for an existing predefined key.""" job_id = 92 pkey = "cblock" key = stats.key_name(job_id, *stats.STATS_KEYS[pkey]) stats.delete_job_counters(job_id) kvs = self.connect() kvs.set(key, 929) stats.pk_get(job_id, pkey) self.assertEqual("929", kvs.get(key))
def test_pk_get_with_existing_incremental(self): """The correct value is obtained for an existing predefined key.""" job_id = 92 pkey = "cblock" key = stats.key_name(job_id, *stats.STATS_KEYS[pkey]) stats.delete_job_counters(job_id) kvs = self.connect() kvs.set(key, 929) stats.pk_get(job_id, pkey) self.assertEqual("929", kvs.get(key))
def test_incr_counter(self): """ The counter is incremented for the given key """ args = (44, "h", "d/x/z", "i") kvs = self.connect() key = stats.key_name(*args) previous_value = kvs.get(key) previous_value = int(previous_value) if previous_value else 0 stats.incr_counter(*args[:-1]) value = int(kvs.get(key)) self.assertEqual(1, (value - previous_value))
def test_incr_counter(self): """ The counter is incremented for the given key """ args = (44, "h", "d/x/z", "i") kvs = self.connect() key = stats.key_name(*args) previous_value = kvs.get(key) previous_value = int(previous_value) if previous_value else 0 stats.incr_counter(*args[:-1]) value = int(kvs.get(key)) self.assertEqual(1, (value - previous_value))
def test_delete_job_counters_resets_counters(self): """ The progress indication counters for a given job are reset. """ kvs = self.connect() args = [(66, "h", "g/h/i", "i"), (66, "h", "j/k/l", "i")] for data in args: stats.incr_counter(*data[:-1]) stats.delete_job_counters(66) # The counters have been reset, after incrementing we expect them all # to have a value of "1". for data in args: stats.incr_counter(*data[:-1]) self.assertEqual("1", kvs.get(stats.key_name(*data)))
def test_delete_job_counters_resets_counters(self): """ The progress indication counters for a given job are reset. """ kvs = self.connect() args = [(66, "h", "g/h/i", "i"), (66, "h", "j/k/l", "i")] for data in args: stats.incr_counter(*data[:-1]) stats.delete_job_counters(66) # The counters have been reset, after incrementing we expect them all # to have a value of "1". for data in args: stats.incr_counter(*data[:-1]) self.assertEqual("1", kvs.get(stats.key_name(*data)))
def test_success_stats(self): """ The success counter is incremented when the wrapped function terminates without raising an exception. """ area = "aaa" @stats.progress_indicator(area) def no_exception(job_id): return 999 kvs = self.connect() key = stats.key_name(11, area, no_exception.__name__, "i") previous_value = kvs.get(key) previous_value = int(previous_value) if previous_value else 0 # Call the wrapped function. self.assertEqual(999, no_exception(11)) value = int(kvs.get(key)) self.assertEqual(1, (value - previous_value))
def test_failure_stats(self): """ The failure counter is incremented when the wrapped function terminates raises an exception. """ area = "bbb" @stats.progress_indicator(area) def raise_exception(job_id): raise NotImplementedError kvs = self.connect() key = stats.key_name( 22, area, raise_exception.__name__ + ":failed", "i") previous_value = kvs.get(key) previous_value = int(previous_value) if previous_value else 0 # Call the wrapped function. self.assertRaises(NotImplementedError, raise_exception, 22) value = int(kvs.get(key)) self.assertEqual(1, (value - previous_value))