From f31310e6d9a3bb8d08456fe02f40142364598648 Mon Sep 17 00:00:00 2001 From: Őry Máté <ory.mate@cloud.bme.hu> Date: Wed, 19 Mar 2014 12:50:43 +0100 Subject: [PATCH] common: test HumanSortField --- circle/common/tests/test_models.py | 35 +++++++++++++++++++++++++++++++++++ 1 file changed, 35 insertions(+) diff --git a/circle/common/tests/test_models.py b/circle/common/tests/test_models.py index 331d68f..e039460 100644 --- a/circle/common/tests/test_models.py +++ b/circle/common/tests/test_models.py @@ -1,5 +1,10 @@ +from collections import deque + from django.test import TestCase +from mock import MagicMock + from .models import TestClass +from ..models import HumanSortField class MethodCacheTestCase(TestCase): @@ -28,3 +33,33 @@ class MethodCacheTestCase(TestCase): t1.method('a') self.assertEqual(val1a, val1b) self.assertEqual(t1.called, 2) + + +class TestHumanSortField(TestCase): + + def test_partition(self): + values = {(lambda s: s.isdigit(), "1234abc56"): ("1234", "abc", "56"), + (lambda s: s.isalpha(), "abc567"): ("abc", "567", ""), + (lambda s: s == "a", "aaababaa"): ("aaa", "b", "abaa"), + (lambda s: s == "a", u"aaababaa"): ("aaa", "b", "abaa"), + } + for (pred, val), result in values.iteritems(): + a, b, c = HumanSortField._partition(deque(val), pred) + assert isinstance(c, deque) + c = ''.join(c) + # print "%s, %s => %s" % (val, str(pred), str((a, b, c))) + self.assertEquals((a, b, c), result) + + def test_get_normalized(self): + values = {("1234abc56", 4): "1234abc0056", + ("abc567", 2): "abc567", + ("aaababaa", 8): "aaababaa", + ("aa4ababaa", 2): "aa04ababaa", + ("aa4aba24baa4", 4): "aa0004aba0024baa0004", + } + for (val, length), result in values.iteritems(): + obj = MagicMock(spec=HumanSortField, maximum_number_length=length, + _partition=HumanSortField._partition) + + test_result = HumanSortField.get_normalized_value(obj, val) + self.assertEquals(test_result, result) -- libgit2 0.26.0