2015-01-28 07:35:27 -05:00
|
|
|
from unittest import skipIf
|
2014-11-11 19:32:44 -06:00
|
|
|
|
2014-12-03 17:36:17 -03:00
|
|
|
from django.test import SimpleTestCase
|
2014-11-11 19:32:44 -06:00
|
|
|
|
2014-12-07 09:43:10 +01:00
|
|
|
from ..utils import setup
|
2014-11-11 19:32:44 -06:00
|
|
|
|
|
|
|
try:
|
|
|
|
import numpy
|
|
|
|
except ImportError:
|
|
|
|
numpy = False
|
|
|
|
|
|
|
|
|
|
|
|
@skipIf(numpy is False, "Numpy must be installed to run these tests.")
|
2014-12-03 17:36:17 -03:00
|
|
|
class NumpyTests(SimpleTestCase):
|
2014-11-11 19:32:44 -06:00
|
|
|
@setup({"numpy-array-index01": "{{ var.1 }}"})
|
|
|
|
def test_numpy_array_index01(self):
|
|
|
|
"""
|
|
|
|
Numpy's array-index syntax allows a template to access a certain
|
|
|
|
item of a subscriptable object.
|
|
|
|
"""
|
2014-12-07 09:43:10 +01:00
|
|
|
output = self.engine.render_to_string(
|
2014-11-11 19:32:44 -06:00
|
|
|
"numpy-array-index01",
|
|
|
|
{"var": numpy.array(["first item", "second item"])},
|
|
|
|
)
|
|
|
|
self.assertEqual(output, "second item")
|
|
|
|
|
|
|
|
@setup({"numpy-array-index02": "{{ var.5 }}"})
|
|
|
|
def test_numpy_array_index02(self):
|
|
|
|
"""
|
|
|
|
Fail silently when the array index is out of range.
|
|
|
|
"""
|
2014-12-07 09:43:10 +01:00
|
|
|
output = self.engine.render_to_string(
|
2014-11-11 19:32:44 -06:00
|
|
|
"numpy-array-index02",
|
|
|
|
{"var": numpy.array(["first item", "second item"])},
|
|
|
|
)
|
2014-12-07 09:43:10 +01:00
|
|
|
if self.engine.string_if_invalid:
|
2014-11-11 19:32:44 -06:00
|
|
|
self.assertEqual(output, "INVALID")
|
|
|
|
else:
|
|
|
|
self.assertEqual(output, "")
|