Skip to content

Commit

Permalink
Refactor model representation methods to be properties.
Browse files Browse the repository at this point in the history
  • Loading branch information
ahawker committed Jun 18, 2017
1 parent 21668c3 commit 03dc83b
Show file tree
Hide file tree
Showing 5 changed files with 70 additions and 61 deletions.
16 changes: 8 additions & 8 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -105,19 +105,19 @@ A `MemoryView` provides the `str`, `int`, and `bytes` methods for changing any v
<ULID('01BJQMF54D093DXEAWZ6JYRPAQ')>
>>> u.timestamp()
<Timestamp('01BJQMF54D')>
>>> u.timestamp().int()
>>> u.timestamp().int
1497589322893
>>> u.timestamp().bytes()
>>> u.timestamp().bytes
b'\x01\\\xafG\x94\x8d'
>>> u.timestamp().datetime()
>>> u.timestamp().datetime
datetime.datetime(2017, 6, 16, 5, 2, 2, 893000)
>>> u.randomness().bytes()
>>> u.randomness().bytes
b'\x02F\xde\xb9\\\xf9\xa5\xecYW'
>>> u.bytes()[6:] == u.randomness().bytes()
>>> u.bytes[6:] == u.randomness().bytes
True
>>> u.str()
>>> u.str
'01BJQMF54D093DXEAWZ6JYRPAQ'
>>> u.int()
>>> u.int
1810474399624548315999517391436142935
```

Expand All @@ -133,7 +133,7 @@ True
>>> u3 = ulid.from_timestamp(datetime.datetime(2039, 1, 1))
>>> u1 < u2 < u3
True
>>> [u.timestamp().datetime() for u in sorted([u2, u3, u1])]
>>> [u.timestamp().datetime for u in sorted([u2, u3, u1])]
[datetime.datetime(2017, 6, 16, 5, 7, 14, 847000), datetime.datetime(2017, 6, 16, 5, 7, 26, 775000), datetime.datetime(2039, 1, 1, 8, 0)]
```

Expand Down
26 changes: 13 additions & 13 deletions tests/test_api.py
Original file line number Diff line number Diff line change
Expand Up @@ -49,7 +49,7 @@ def test_from_bytes_returns_ulid_instance(buffer_type, valid_bytes_128):
value = buffer_type(valid_bytes_128)
instance = api.from_bytes(value)
assert isinstance(instance, ulid.ULID)
assert instance.bytes() == valid_bytes_128
assert instance.bytes == valid_bytes_128


def test_from_bytes_raises_when_not_128_bits(buffer_type, invalid_bytes_128):
Expand All @@ -70,7 +70,7 @@ def test_from_int_returns_ulid_instance(valid_bytes_128):
value = int.from_bytes(valid_bytes_128, byteorder='big')
instance = api.from_int(value)
assert isinstance(instance, ulid.ULID)
assert instance.bytes() == valid_bytes_128
assert instance.bytes == valid_bytes_128


def test_from_int_raises_when_not_128_bits(invalid_bytes_128):
Expand All @@ -91,7 +91,7 @@ def test_from_str_returns_ulid_instance(valid_bytes_128):
value = base32.encode(valid_bytes_128)
instance = api.from_str(value)
assert isinstance(instance, ulid.ULID)
assert instance.bytes() == valid_bytes_128
assert instance.bytes == valid_bytes_128


def test_from_str_raises_when_not_128_bits(valid_bytes_48):
Expand All @@ -112,7 +112,7 @@ def test_from_uuid_returns_ulid_instance():
value = uuid.uuid4()
instance = api.from_uuid(value)
assert isinstance(instance, ulid.ULID)
assert instance.bytes() == value.bytes
assert instance.bytes == value.bytes


def test_from_timestamp_datetime_returns_ulid_instance():
Expand All @@ -123,7 +123,7 @@ def test_from_timestamp_datetime_returns_ulid_instance():
value = datetime.datetime.now()
instance = api.from_timestamp(value)
assert isinstance(instance, ulid.ULID)
assert int(instance.timestamp().timestamp()) == int(value.timestamp())
assert int(instance.timestamp().timestamp) == int(value.timestamp())


def test_from_timestamp_int_returns_ulid_instance():
Expand All @@ -134,7 +134,7 @@ def test_from_timestamp_int_returns_ulid_instance():
value = int(time.time())
instance = api.from_timestamp(value)
assert isinstance(instance, ulid.ULID)
assert int(instance.timestamp().timestamp()) == value
assert int(instance.timestamp().timestamp) == value


def test_from_timestamp_float_returns_ulid_instance():
Expand All @@ -145,7 +145,7 @@ def test_from_timestamp_float_returns_ulid_instance():
value = float(time.time())
instance = api.from_timestamp(value)
assert isinstance(instance, ulid.ULID)
assert int(instance.timestamp().timestamp()) == int(value)
assert int(instance.timestamp().timestamp) == int(value)


def test_from_timestamp_str_returns_ulid_instance(valid_bytes_48):
Expand All @@ -156,7 +156,7 @@ def test_from_timestamp_str_returns_ulid_instance(valid_bytes_48):
value = base32.encode_timestamp(valid_bytes_48)
instance = api.from_timestamp(value)
assert isinstance(instance, ulid.ULID)
assert instance.timestamp().str() == value
assert instance.timestamp().str == value


def test_from_timestamp_bytes_returns_ulid_instance(buffer_type, valid_bytes_48):
Expand All @@ -167,7 +167,7 @@ def test_from_timestamp_bytes_returns_ulid_instance(buffer_type, valid_bytes_48)
value = buffer_type(valid_bytes_48)
instance = api.from_timestamp(value)
assert isinstance(instance, ulid.ULID)
assert instance.timestamp().bytes() == value
assert instance.timestamp().bytes == value


def test_from_timestamp_timestamp_returns_ulid_instance(valid_bytes_48):
Expand Down Expand Up @@ -218,7 +218,7 @@ def test_from_randomness_int_returns_ulid_instance(valid_bytes_80):
value = int.from_bytes(valid_bytes_80, byteorder='big')
instance = api.from_randomness(value)
assert isinstance(instance, ulid.ULID)
assert instance.randomness().int() == value
assert instance.randomness().int == value


def test_from_randomness_float_returns_ulid_instance(valid_bytes_80):
Expand All @@ -229,7 +229,7 @@ def test_from_randomness_float_returns_ulid_instance(valid_bytes_80):
value = float(int.from_bytes(valid_bytes_80, byteorder='big'))
instance = api.from_randomness(value)
assert isinstance(instance, ulid.ULID)
assert instance.randomness().int() == int(value)
assert instance.randomness().int == int(value)


def test_from_randomness_str_returns_ulid_instance(valid_bytes_80):
Expand All @@ -240,7 +240,7 @@ def test_from_randomness_str_returns_ulid_instance(valid_bytes_80):
value = base32.encode_randomness(valid_bytes_80)
instance = api.from_randomness(value)
assert isinstance(instance, ulid.ULID)
assert instance.randomness().str() == value
assert instance.randomness().str == value


def test_from_randomness_bytes_returns_ulid_instance(buffer_type, valid_bytes_80):
Expand All @@ -251,7 +251,7 @@ def test_from_randomness_bytes_returns_ulid_instance(buffer_type, valid_bytes_80
value = buffer_type(valid_bytes_80)
instance = api.from_randomness(value)
assert isinstance(instance, ulid.ULID)
assert instance.randomness().bytes() == value
assert instance.randomness().bytes == value


def test_from_randomness_randomness_returns_ulid_instance(valid_bytes_80):
Expand Down
14 changes: 7 additions & 7 deletions tests/test_ulid.py
Original file line number Diff line number Diff line change
Expand Up @@ -144,7 +144,7 @@ def test_memoryview_supports_str(valid_bytes_128):
result of the :meth:`~ulid.ulid.MemoryView.str` method.
"""
mv = ulid.MemoryView(valid_bytes_128)
assert str(mv) == mv.str()
assert str(mv) == mv.str


def test_memoryview_supports_int(valid_bytes_128):
Expand All @@ -153,7 +153,7 @@ def test_memoryview_supports_int(valid_bytes_128):
result of the :meth:`~ulid.ulid.MemoryView.int` method.
"""
mv = ulid.MemoryView(valid_bytes_128)
assert int(mv) == mv.int()
assert int(mv) == mv.int


def test_memoryview_defines_hash(valid_bytes_128):
Expand All @@ -171,7 +171,7 @@ def test_timestamp_coverts_bytes_to_unix_time_seconds():
"""
now_ms = int(time.time()) * 1000
timestamp = ulid.Timestamp(now_ms.to_bytes(6, byteorder='big'))
assert timestamp.timestamp() == now_ms / 1000.0
assert timestamp.timestamp == now_ms / 1000.0


def test_timestamp_converts_to_datetime():
Expand All @@ -181,7 +181,7 @@ def test_timestamp_converts_to_datetime():
"""
now_ms = int(time.time()) * 1000
timestamp = ulid.Timestamp(now_ms.to_bytes(6, byteorder='big'))
assert timestamp.datetime() == datetime.datetime.utcfromtimestamp(now_ms / 1000.0)
assert timestamp.datetime == datetime.datetime.utcfromtimestamp(now_ms / 1000.0)


def test_ulid_timestamp_returns_instance(valid_bytes_128):
Expand All @@ -197,7 +197,7 @@ def test_ulid_timestamp_is_first_48_bits(valid_bytes_128):
is populated with the first 48 bits of the ULID.
"""
timestamp = ulid.ULID(valid_bytes_128).timestamp()
assert timestamp.bytes() == valid_bytes_128[:6]
assert timestamp.bytes == valid_bytes_128[:6]


def test_ulid_randomness_returns_instance(valid_bytes_128):
Expand All @@ -213,11 +213,11 @@ def test_ulid_randomness_is_first_48_bits(valid_bytes_128):
is populated with the last 80 bits of the ULID.
"""
randomness = ulid.ULID(valid_bytes_128).randomness()
assert randomness.bytes() == valid_bytes_128[6:]
assert randomness.bytes == valid_bytes_128[6:]


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)
assert isinstance(ulid.ULID(valid_bytes_128).uuid, uuid.UUID)
8 changes: 4 additions & 4 deletions ulid/api.py
Original file line number Diff line number Diff line change
Expand Up @@ -136,9 +136,9 @@ def from_timestamp(timestamp: TimestampPrimitive) -> ulid.ULID:
elif isinstance(timestamp, memoryview):
timestamp = timestamp.tobytes()
elif isinstance(timestamp, ulid.Timestamp):
timestamp = timestamp.bytes()
timestamp = timestamp.bytes
elif isinstance(timestamp, ulid.ULID):
timestamp = timestamp.timestamp().bytes()
timestamp = timestamp.timestamp().bytes

if not isinstance(timestamp, (bytes, bytearray)):
raise ValueError('Expected datetime, int, float, str, memoryview, Timestamp, ULID, '
Expand Down Expand Up @@ -182,9 +182,9 @@ def from_randomness(randomness: RandomnessPrimitive) -> ulid.ULID:
elif isinstance(randomness, memoryview):
randomness = randomness.tobytes()
elif isinstance(randomness, ulid.Randomness):
randomness = randomness.bytes()
randomness = randomness.bytes
elif isinstance(randomness, ulid.ULID):
randomness = randomness.randomness().bytes()
randomness = randomness.randomness().bytes

if not isinstance(randomness, (bytes, bytearray)):
raise ValueError('Expected int, float, str, memoryview, Randomness, ULID, '
Expand Down
Loading

0 comments on commit 03dc83b

Please sign in to comment.