图片解析应用
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 
 

66 lines
1.8 KiB

import uuid
import pytest
from kazoo.testing import KazooTestCase
class KazooCounterTests(KazooTestCase):
def _makeOne(self, **kw):
path = "/" + uuid.uuid4().hex
return self.client.Counter(path, **kw)
def test_int_counter(self):
counter = self._makeOne()
assert counter.value == 0
counter += 2
counter + 1
assert counter.value == 3
counter -= 3
counter - 1
assert counter.value == -1
def test_int_curator_counter(self):
counter = self._makeOne(support_curator=True)
assert counter.value == 0
counter += 2
counter + 1
assert counter.value == 3
counter -= 3
counter - 1
assert counter.value == -1
counter += 1
counter += 2147483647
assert counter.value == 2147483647
counter -= 2147483647
counter -= 2147483647
assert counter.value == -2147483647
def test_float_counter(self):
counter = self._makeOne(default=0.0)
assert counter.value == 0.0
counter += 2.1
assert counter.value == 2.1
counter -= 3.1
assert counter.value == -1.0
def test_errors(self):
counter = self._makeOne()
with pytest.raises(TypeError):
counter.__add__(2.1)
with pytest.raises(TypeError):
counter.__add__(b"a")
with pytest.raises(TypeError):
counter = self._makeOne(default=0.0, support_curator=True)
def test_pre_post_values(self):
counter = self._makeOne()
assert counter.value == 0
assert counter.pre_value is None
assert counter.post_value is None
counter += 2
assert counter.pre_value == 0
assert counter.post_value == 2
counter -= 3
assert counter.pre_value == 2
assert counter.post_value == -1