renumbering chapters >= 19
This commit is contained in:
41
24-class-metaprog/sentinel/sentinel_test.py
Normal file
41
24-class-metaprog/sentinel/sentinel_test.py
Normal file
@@ -0,0 +1,41 @@
|
||||
import pickle
|
||||
|
||||
import pytest
|
||||
|
||||
from sentinel import Sentinel
|
||||
|
||||
|
||||
class PlainSentinel(Sentinel):
|
||||
pass
|
||||
|
||||
|
||||
class SentinelCustomRepr(Sentinel):
|
||||
repr = '***SentinelRepr***'
|
||||
|
||||
|
||||
def test_repr():
|
||||
assert repr(PlainSentinel) == 'PlainSentinel'
|
||||
|
||||
|
||||
def test_cannot_instantiate():
|
||||
with pytest.raises(TypeError) as e:
|
||||
PlainSentinel()
|
||||
msg = "'PlainSentinel' is a sentinel and cannot be instantiated"
|
||||
assert msg in str(e.value)
|
||||
|
||||
|
||||
def test_custom_repr():
|
||||
assert repr(SentinelCustomRepr) == '***SentinelRepr***'
|
||||
|
||||
|
||||
def test_pickle():
|
||||
s = pickle.dumps(SentinelCustomRepr)
|
||||
ps = pickle.loads(s)
|
||||
assert ps is SentinelCustomRepr
|
||||
|
||||
|
||||
def test_sentinel_comes_ready_to_use():
|
||||
assert repr(Sentinel) == 'Sentinel'
|
||||
s = pickle.dumps(Sentinel)
|
||||
ps = pickle.loads(s)
|
||||
assert ps is Sentinel
|
||||
Reference in New Issue
Block a user