summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorEevee <eevee.github@veekun.com>2015-08-07 18:44:35 -0700
committerEevee <eevee.github@veekun.com>2015-08-07 18:44:35 -0700
commit42b7e5270407b1abd8063a11080ea5ea987076eb (patch)
tree430310a11b6cef0497a5e7895ab212357a31b1d6
parentb1621dca6b554d793f01eee7831997ae477ca7ec (diff)
parent885ef5623c9ae8e71fdf02c17e729fcd8bac24c6 (diff)
downloadpyscss-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.py8
-rw-r--r--scss/tests/extension/test_core.py3
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():