def test_from_json(self): class MapOptions(HasProps): lat = Float lng = Float zoom = Int(12) v1 = bcpi.Instance(MapOptions).from_json(dict(lat=1, lng=2)) v2 = MapOptions(lat=1, lng=2) assert v1.equals(v2)
def test_invalid(self): prop = bcpi.Instance(_TestModel) assert not prop.is_valid(False) assert not prop.is_valid(True) assert not prop.is_valid(0) assert not prop.is_valid(1) assert not prop.is_valid(0.0) assert not prop.is_valid(1.0) assert not prop.is_valid(1.0 + 1.0j) assert not prop.is_valid("") assert not prop.is_valid(()) assert not prop.is_valid([]) assert not prop.is_valid({}) assert not prop.is_valid(_TestModel2()) assert not prop.is_valid(_TestHasProps())
def test_str(self): prop = bcpi.Instance(_TestModel) assert str(prop) == "Instance(_TestModel)"
def test_has_ref(self): prop = bcpi.Instance(_TestModel) assert prop.has_ref
def test_valid(self): prop = bcpi.Instance(_TestModel) assert prop.is_valid(None) assert prop.is_valid(_TestModel())
def test_init(self): with pytest.raises(TypeError): bcpi.Instance()
def test_readonly(self) -> None: prop = bcpi.Instance(_TestModel) assert prop.readonly == False
def test_serialized(self) -> None: prop = bcpi.Instance(_TestModel) assert prop.serialized == True
class ExplicitDefault(HasProps): m = bcpi.Instance(_TestModel, default=lambda: _TestModel(x=10))
class ExplicitDefault(HasProps): m = bcpi.Instance(_TestModel, default=bcpi.InstanceDefault(_TestModel, x=10))