src/cm/tests/test_spannifier.py
author Simon Descarpentries <sid@sopinspace.com>
Tue, 06 May 2014 13:52:01 +0200
changeset 651 9bbc657f6837
parent 271 542f1b389a29
permissions -rw-r--r--
Replace DISABLE_TRACKING and TRACKING_HTML by a TRACKING_ID variable in configuration files
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
0
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
     1
# -*- coding: utf-8 -*-
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
     2
from django.test import TestCase
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
     3
from cm.utils.spannifier import *
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
     4
from BeautifulSoup import BeautifulSoup
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
     5
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
     6
# python manage.py test 
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
     7
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
     8
# python manage.py test cm.SpannifyTest
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
     9
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    10
file_tests = ["simple.html",]
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    11
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    12
class SpannifyTest(TestCase):
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    13
    
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    14
    def test_spannify(self):
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    15
        string_tests_spannify = [
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    16
                                 [u"""<body>kéké</body>""", 
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    17
                                  u"""<body><span id="sv_0" class="c-s"><span id="sv-0" class="c-count-0 c-c">kéké</span></span></body>""",
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    18
                                  u'kéké',
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    19
                                  ],
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    20
                                  
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    21
                                 [u"""<body>aaa <span>bbb</span> ccc ddd <b>eee</b></body>""",
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    22
                                  u"""<body><span id="sv_0" class="c-s"><span id="sv-0" class="c-count-0 c-c">aaa </span></span><span><span id="sv_1" class="c-s"><span id="sv-1" class="c-count-0 c-c">bbb</span></span></span><span id="sv_2" class="c-s"><span id="sv-2" class="c-count-0 c-c"> ccc ddd </span></span><b><span id="sv_3" class="c-s"><span id="sv-3" class="c-count-0 c-c">eee</span></span></b></body>""",
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    23
                                  u"""aaa bbb ccc ddd eee""",]                                  
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    24
                                ]
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    25
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    26
#        
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    27
        for input, expected_spanned, expected_raw in string_tests_spannify :
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    28
            res, raw_text, corresp = spannify(input)
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    29
            self.assertEqual(unicode(res),expected_spanned)
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    30
            self.assertEqual(unicode(raw_text),expected_raw)
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    31
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    32
#        for filename in file_tests :
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    33
#            if filename[:5] == "span_" :
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    34
#                doc = xml.dom.minidom.parse('cm/tests/data/%s' % filename)
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    35
#                soup = BeautifulSoup('cm/tests/data/%s' % filename, convertEntities=["xml", "html"])
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    36
#                
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    37
#                res = spannifier.spannify(doc)
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    38
#                res2 = spannifier.spannify_new(soup)
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    39
#                
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    40
#                expectedResult = file('cm/tests/data/res_%s' % filename).read()
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    41
##                print res
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    42
#                self.assertEqual(res2,expectedResult)
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    43
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    44
271
542f1b389a29 add test case for long lasting spannify
raph
parents: 0
diff changeset
    45
542f1b389a29 add test case for long lasting spannify
raph
parents: 0
diff changeset
    46
    def test_long_spannify(self):
542f1b389a29 add test case for long lasting spannify
raph
parents: 0
diff changeset
    47
        content =  unicode(file('src/cm/tests/data/long_text_to_spannify.html').read(), 'utf8')
542f1b389a29 add test case for long lasting spannify
raph
parents: 0
diff changeset
    48
        
542f1b389a29 add test case for long lasting spannify
raph
parents: 0
diff changeset
    49
        res, raw_text, corresp = spannify(content)