def test_all_types(self): sort_key_rec = mod.SortKeyRecord('99SR') assert sort_key_rec.type == 'str' sort_key_rec = mod.SortKeyRecord('99iR') assert sort_key_rec.type == 'int' sort_key_rec = mod.SortKeyRecord('99fR') assert sort_key_rec.type == 'float'
def test_invalid_order(self): with pytest.raises(ValueError): sort_key_rec = mod.SortKeyRecord('9i9')
def test_invalid_type(self): with pytest.raises(ValueError): sort_key_rec = mod.SortKeyRecord('99R')
def test_invalid_position(self): with pytest.raises(ValueError): sort_key_rec = mod.SortKeyRecord('bSR')
def test_all_orders(self): sort_key_rec = mod.SortKeyRecord('99SR') assert sort_key_rec.order == 'reverse' sort_key_rec = mod.SortKeyRecord('99if') assert sort_key_rec.order == 'forward'
def test_big_position(self): sort_key_rec = mod.SortKeyRecord('99SR') assert sort_key_rec.position == 99 assert sort_key_rec.type == 'str' assert sort_key_rec.order == 'reverse'
def test_case(self): sort_key_rec = mod.SortKeyRecord('5SR') assert sort_key_rec.position == 5 assert sort_key_rec.type == 'str' assert sort_key_rec.order == 'reverse'
def test_string(self): sort_key_rec = mod.SortKeyRecord('2sf') assert mod.transform('foo', sort_key_rec, 'forward') == 'foo'
def test_float_reversed(self): sort_key_rec = mod.SortKeyRecord('2fr') assert mod.transform('3.2', sort_key_rec, 'forward') == -3.2
def test_string_reversed(self): sort_key_rec = mod.SortKeyRecord('2sr') assert mod.transform('3.2', sort_key_rec, 'forward') == '3.2'
def test_float(self): sort_key_rec = mod.SortKeyRecord('2ff') assert mod.transform('3.2', sort_key_rec, 'forward') == 3.2
def test_integer_reversed_but_primary_is_already_reverse(self): sort_key_rec = mod.SortKeyRecord('2ir') assert mod.transform('3', sort_key_rec, 'reversed') == 3
def test_integer_reversed(self): sort_key_rec = mod.SortKeyRecord('2ir') assert mod.transform('3', sort_key_rec, 'forward') == -3
def test_one_key(self): sort_keys = mod.SortKeysConfig(['1sf']) assert sort_keys.key_fields == [mod.SortKeyRecord('1sf')]
def test_string_reversed_but_primary_is_already_reverse(self): sort_key_rec = mod.SortKeyRecord('2sr') assert mod.transform('3.2', sort_key_rec, 'reversed') == '3.2'
def test_two_keys(self): sort_keys = mod.SortKeysConfig(['1sf', '2ir']) assert sort_keys.key_fields == [ mod.SortKeyRecord('1sf'), mod.SortKeyRecord('2ir') ]
def test_happypath(self): sort_key_rec = mod.SortKeyRecord('5sr') assert sort_key_rec.position == 5 assert sort_key_rec.type == 'str' assert sort_key_rec.order == 'reverse'