diff options
author | Eevee <eevee.github@veekun.com> | 2015-08-07 18:44:35 -0700 |
---|---|---|
committer | Eevee <eevee.github@veekun.com> | 2015-08-07 18:44:35 -0700 |
commit | 42b7e5270407b1abd8063a11080ea5ea987076eb (patch) | |
tree | 430310a11b6cef0497a5e7895ab212357a31b1d6 | |
parent | b1621dca6b554d793f01eee7831997ae477ca7ec (diff) | |
parent | 885ef5623c9ae8e71fdf02c17e729fcd8bac24c6 (diff) | |
download | pyscss-42b7e5270407b1abd8063a11080ea5ea987076eb.tar.gz |
Merge pull request #346 from william-index/master
Increases parity of str-slice with Sass str-slice
-rw-r--r-- | scss/extension/core.py | 8 | ||||
-rw-r--r-- | scss/tests/extension/test_core.py | 3 |
2 files changed, 9 insertions, 2 deletions
diff --git a/scss/extension/core.py b/scss/extension/core.py index 6642f1d..7967429 100644 --- a/scss/extension/core.py +++ b/scss/extension/core.py @@ -576,9 +576,13 @@ def str_index(string, substring): def str_slice(string, start_at, end_at=None): expect_type(string, String) expect_type(start_at, Number, unit=None) - py_start_at = start_at.to_python_index(len(string.value)) - if end_at is None: + if int(start_at) == 0: + py_start_at = 0 + else: + py_start_at = start_at.to_python_index(len(string.value)) + + if end_at is None or int(end_at) > len(string.value): py_end_at = None else: expect_type(end_at, Number, unit=None) diff --git a/scss/tests/extension/test_core.py b/scss/tests/extension/test_core.py index 8c26aef..7151c76 100644 --- a/scss/tests/extension/test_core.py +++ b/scss/tests/extension/test_core.py @@ -277,6 +277,9 @@ def test_str_slice(): assert calc('str-slice("abcd", 2)') == calc('"bcd"') assert calc('str-slice("abcd", -3, -2)') == calc('"bc"') assert calc('str-slice("abcd", 2, -2)') == calc('"bc"') + assert calc('str-slice("abcd", 0, 3)') == calc('"abc"') + assert calc('str-slice("abcd", 1, 3)') == calc('"abc"') + assert calc('str-slice("abcd", 1, 30)') == calc('"abcd"') def test_to_upper_case(): |