Source code for django_prbac.tests.test_fields

from django.test import TestCase

from django_prbac.fields import StringListField, StringSetField


[docs]class TestStringListField(TestCase): """ Test suite for django_prbac.fields.StringListField """
[docs] def test_is_string_list(self): field = StringListField('testing') self.assertTrue(field.is_string_list([])) self.assertTrue(field.is_string_list(["hello", "goodbye"])) self.assertFalse(field.is_string_list("boo")) self.assertFalse(field.is_string_list(3)) self.assertFalse(field.is_string_list('"A","B"'))
[docs] def test_to_python_convert(self): field = StringListField('testing') self.assertEqual(field.to_python(''), []) self.assertEqual(field.to_python('"A","B","C"'), ['A', 'B', 'C'])
[docs] def test_to_python_already_done(self): field = StringListField('testing') self.assertEqual(field.to_python([]), []) self.assertEqual(field.to_python(["A", "B", "C"]), ['A', 'B', 'C']) with self.assertRaises(ValueError): field.to_python(4) with self.assertRaises(ValueError): field.to_python([1, 2, 3]) with self.assertRaises(ValueError): field.to_python(None)
[docs] def test_get_prep_value_convert(self): field = StringListField('testing') self.assertEqual(field.get_prep_value(["A", "B", "C"]), 'A,B,C') self.assertEqual(field.get_prep_value(["A", "B,C", "D"]), 'A,"B,C",D') with self.assertRaises(ValueError): field.get_prep_value(5)
[docs]class TestStringSetField(TestCase): """ Test suite for django_prbac.fields.StringSetField """
[docs] def test_is_string_set(self): field = StringSetField('testing') self.assertTrue(field.is_string_set(set([]))) self.assertTrue(field.is_string_set(set(["hello", "goodbye"]))) self.assertFalse(field.is_string_set(["A", "B"])) self.assertFalse(field.is_string_set("boo")) self.assertFalse(field.is_string_set(3)) self.assertFalse(field.is_string_set('["A", "B"]'))
[docs] def test_to_python_convert(self): field = StringSetField('testing') # This that are legitimate to store in the DB self.assertEqual(field.to_python(''), set()) self.assertEqual(field.to_python('"A","B","C"'), set(['A', 'B', 'C']))
[docs] def test_to_python_already_done(self): field = StringSetField('testing') self.assertEqual(field.to_python([]), set()) self.assertEqual(field.to_python(set(["A","B","C"])), set(['A', 'B', 'C'])) with self.assertRaises(ValueError): field.to_python(4) with self.assertRaises(ValueError): field.to_python([1, 2, 3]) with self.assertRaises(ValueError): field.to_python(None)
[docs] def test_get_prep_value_convert(self): field = StringSetField('testing') self.assertEqual(field.get_prep_value(set(["A", "B", "C"])), 'A,B,C') self.assertEqual(field.get_prep_value(set(["C", "B", "A"])), 'A,B,C') with self.assertRaises(ValueError): field.get_prep_value(5)