예제 #1
0
def test_ulid_timestamp_is_first_48_bits(valid_bytes_128):
    """
    Assert that :meth:`~ulid.ulid.timestamp` returns a :class:`~ulid.ulid.Timestamp` instance that
    is populated with the first 48 bits of the ULID.
    """
    timestamp = ulid.ULID(valid_bytes_128).timestamp()
    assert timestamp.bytes == valid_bytes_128[:6]
예제 #2
0
def test_ulid_randomness_is_first_48_bits(valid_bytes_128):
    """
    Assert that :meth:`~ulid.ulid.randomness` returns a :class:`~ulid.ulid.Randomness` instance that
    is populated with the last 80 bits of the ULID.
    """
    randomness = ulid.ULID(valid_bytes_128).randomness()
    assert randomness.bytes == valid_bytes_128[6:]
예제 #3
0
def test_from_randomness_ulid_returns_ulid_instance(valid_bytes_128):
    """
    Assert that :func:`~ulid.api.from_randomness` returns a new :class:`~ulid.ulid.ULID` instance
    from the given random values as a :class:`~ulid.ulid.ULID`.
    """
    value = ulid.ULID(valid_bytes_128)
    instance = api.from_randomness(value)
    assert isinstance(instance, ulid.ULID)
    assert instance.randomness() == value.randomness()
예제 #4
0
def test_decode_randomness_ulid_returns_randomness_instance(valid_bytes_128):
    """
    Assert that :func:`~ulid.codec.decode_randomness` returns a new :class:`~ulid.ulid.Randomness` instance
    from the given random values as a :class:`~ulid.ulid.ULID`.
    """
    value = ulid.ULID(valid_bytes_128)
    instance = codec.decode_randomness(value)
    assert isinstance(instance, ulid.Randomness)
    assert instance == value.randomness()
예제 #5
0
def test_decode_timestamp_ulid_returns_timestamp_instance(valid_bytes_128):
    """
    Assert that :func:`~ulid.codec.decode_timestamp` returns a new :class:`~ulid.ulid.Timestamp` instance
    from the given timestamp as a :class:`~ulid.ulid.ULID`.
    """
    value = ulid.ULID(valid_bytes_128)
    instance = codec.decode_timestamp(value)
    assert isinstance(instance, ulid.Timestamp)
    assert instance == value.timestamp()
예제 #6
0
def test_from_timestamp_ulid_returns_ulid_instance(valid_bytes_128):
    """
    Assert that :func:`~ulid.api.from_timestamp` returns a new :class:`~ulid.ulid.ULID` instance
    from the given timestamp as a :class:`~ulid.ulid.ULID`.
    """
    value = ulid.ULID(valid_bytes_128)
    instance = api.from_timestamp(value)
    assert isinstance(instance, ulid.ULID)
    assert instance.timestamp() == value.timestamp()
예제 #7
0
 def test_pretty_print(self):
     _ulid = ulid.ULID()
     _ulid.pretty_print("01BX5ZZKBKACTAV9WEVGEMMVS0")
예제 #8
0
def test_ulid_uuid_returns_instance(valid_bytes_128):
    """
    Assert that :func:`~ulid.ulid.ULID.uuid` returns a :class:`~uuid.UUID` instance.
    """
    assert isinstance(ulid.ULID(valid_bytes_128).uuid, uuid.UUID)
예제 #9
0
 def test_ulid_encode_max(self):
     with pytest.raises(ValueError, match=r".*larger than 128.*"):
         ulid.ULID().encode(340282366920938463463374607431768211459)
예제 #10
0
def test_ulid_randomness_returns_instance(valid_bytes_128):
    """
    Assert that :meth:`~ulid.ulid.randomness` returns a :class:`~ulid.ulid.Randomness` instance.
    """
    assert isinstance(ulid.ULID(valid_bytes_128).randomness(), ulid.Randomness)
예제 #11
0
 def test_ulid_encode_min(self):
     with pytest.raises(ValueError, match=r".*has to be a positive.*"):
         ulid.ULID().encode(-1)
예제 #12
0
def test_ulid_timestamp_returns_instance(valid_bytes_128):
    """
    Assert that :meth:`~ulid.ulid.timestamp` returns a :class:`~ulid.ulid.Timestamp` instance.
    """
    assert isinstance(ulid.ULID(valid_bytes_128).timestamp(), ulid.Timestamp)
예제 #13
0
 def test_encode_return_val_length(self):
     _ulid = ulid.ULID()
     i = 340282366920938463463374607431768167
     val = _ulid.encode(i)
     print(val)
     assert len(val) == 26
예제 #14
0
 def test_ulid_decode_overflow(self):
     with pytest.raises(ValueError,
                        match=r".*Cannot encode time larger than.*"):
         _ulid = ulid.ULID()
         s = '8ZZZZZZZZZZZZZZZZZZZZZZZZZ'
         val = _ulid.decode(s)
예제 #15
0
 def test_ulid_decode(self):
     _ulid = ulid.ULID()
     s = '01BX5ZZKBKACTAV9WEVGEMMVRY'
     val = _ulid.decode(s)
     assert val == (1508808576371, 392928161897179156999966)
예제 #16
0
 def test_ulid_decode_max(self):
     _ulid = ulid.ULID()
     s = '7ZZZZZZZZZZZZZZZZZZZZZZZZZ'
     val = _ulid.decode(s)
     assert val == (281474976710655, 1208925819614629174706175)
예제 #17
0
 def test_ulid_encode_timestamp_max(self):
     _ulid = ulid.ULID()
     t = 281474976710655
     val = _ulid.encode_timestamp(t)
     assert val == '7ZZZZZZZZZ'
예제 #18
0
 def test_ulid_encode_timestamp(self):
     _ulid = ulid.ULID()
     t = int(datetime.now(timezone.utc).timestamp() * 1000)
     val = _ulid.encode_timestamp(t)
     print(val)
     assert len(val) == 10
예제 #19
0
 def test_generate_length(self):
     _ulid = ulid.ULID()
     val = _ulid.generate()
     assert len(val) == 26
예제 #20
0
 def test_encode_ulid_mismatched_arg_type(self):
     _ulid = ulid.ULID()
     i = "Hello"
     with pytest.raises(TypeError):
         _ulid.encode(i)