Ejemplo n.º 1
0
    def _create_id_string(self, meter_id: MeterId, meter_type: str) -> str:
        s = "{}:{}".format(meter_type,
                           self._replace_invalid_chars(meter_id.name))

        for key, value in sorted(meter_id.tags().items()):
            k = self._replace_invalid_chars(key)
            v = self._replace_invalid_chars(value)
            s += ",{}={}".format(k, v)

        return s + ":"
Ejemplo n.º 2
0
 def test_with_tags_returns_new_object(self):
     id1 = MeterId("foo")
     id2 = id1.with_tags({"a": "1", "b": "2"})
     self.assertNotEqual(id1, id2)
     self.assertEqual({}, id1.tags())
     self.assertEqual({"a": "1", "b": "2"}, id2.tags())
Ejemplo n.º 3
0
 def test_tags_defensive_copy(self):
     id1 = MeterId("foo", {"a": "1"})
     tags = id1.tags()
     tags["b"] = "2"
     self.assertEqual({"a": "1", "b": "2"}, tags)
     self.assertEqual({"a": "1"}, id1.tags())
Ejemplo n.º 4
0
 def test_tags(self):
     id1 = MeterId("foo", {"a": "1"})
     self.assertEqual({"a": "1"}, id1.tags())