def test_invalid_type(): """Test that we get validation error with correct message.""" with pytest.raises(ValidationError) as ve: Slicing(**{'from': 'test'}) errors = ve.value.errors()[0] # noqa: WPS441 assert errors['loc'] == ('from',) assert errors['msg'] == 'value is not a valid integer'
def test_invalid(): """Test that we get validation error with correct message.""" with pytest.raises(ValidationError) as ve: Slicing(to=0) errors = ve.value.errors()[0] # noqa: WPS441 assert errors['loc'] == ('from',) assert errors['msg'] == 'field required'
def test_slice_range_on_range_out_of_string(): """Test that slice range out of the string.""" assert apply_slicing( '0123', Slicing(**{ 'from': 5, 'to': 10 }), ) == ''
def test_slice_range_longer_than_string(): """Test that slice range longer than the string length returns string.""" assert apply_slicing( '0123', Slicing(**{ 'from': 0, 'to': 50 }), ) == '0123'
def test_list(): """Test that we can slice a list and that its not cast to string.""" assert apply_slicing( [0, 1, 2], Slicing(**{ 'from': 1, 'to': None }), ) == [1, 2]
def test_object_is_stringified(): """Test that an object is stringified.""" assert apply_slicing( {'test': 'bob'}, Slicing(**{ 'from': -5, 'to': -2 }), ) == 'bob'
def test_negative_to(): """Test that a negative to value ends cut at end minus to.""" assert apply_slicing( '01234', Slicing(**{ 'from': 0, 'to': -2 }), ) == '012'
def test_boolean_is_stringified(): """Test that a boolean value is stringfied.""" assert apply_slicing( False, # noqa: WPS425 Slicing(**{ 'from': 0, 'to': 1 }), ) == 'F'
def test_middle_of_value(): """Test that we can get a value in middle of string.""" assert apply_slicing('test', Slicing(**{'from': 1, 'to': 3})) == 'es'
def test_start_to_middle(): """Test that we can slice from start to middle.""" assert apply_slicing('test', Slicing(**{'from': 0, 'to': 3})) == 'tes'
def test_float_is_stringified(): """Test that a float value is stringfied.""" assert apply_slicing(123.123, Slicing(**{'from': -3})) == '123'
def test_int_is_stringified(): """Test that a non string value will be stringified before slice.""" assert apply_slicing(123, Slicing(**{'from': 2})) == '3'
def test_no_value_is_ok(): """When value is None we get a Success(None).""" assert apply_slicing(None, Slicing(**{'from': 0})) is None
def test_negative_from(): """Test that a negative from value starts cutting at the end minus from.""" assert apply_slicing('012345', Slicing(**{'from': -2})) == '45'
def test_start_to_end(): """Test that we can slice from start to end.""" assert apply_slicing('test', Slicing(**{'from': 0, 'to': None})) == 'test'
def test_validates(): # noqa: WPS218 """Test that dict is marshalled to pydantic object.""" test = Slicing(**{'from': 0}) assert test.slice_from == 0 assert test.slice_to is None
def test_middle_to_end(): """Test that we can slice from middle to end of value.""" assert apply_slicing('test', Slicing(**{'from': 1})) == 'est'