web/test/unittest_views_apacherewrite.py
changeset 0 b97547f5f1fa
child 1977 606923dff11b
equal deleted inserted replaced
-1:000000000000 0:b97547f5f1fa
       
     1 from logilab.common.testlib import TestCase, unittest_main
       
     2 
       
     3 from cubicweb.web.views.apacherewrite import *
       
     4 
       
     5 class ApacheURLRewriteTC(TestCase):
       
     6 
       
     7     def test(self):
       
     8         class MyAppRules(ApacheURLRewrite): 
       
     9             rules = [
       
    10                 RewriteCond('logilab\.fr', match='host',
       
    11                             rules=[('/(.*)', r'http://www.logilab.fr/\1')],
       
    12                             action='redirect'),
       
    13                 RewriteCond('(www)\.logilab\.fr', match='host', action='stop'),
       
    14                 RewriteCond('/(data|json)/', match='path', action='stop'),
       
    15                 RewriteCond('(?P<cat>.*)\.logilab\.fr', match='host', 
       
    16                             rules=[('/(.*)', r'/m_%(cat)s/\1')]),
       
    17                 ]
       
    18         urlrewriter = MyAppRules()
       
    19         try:
       
    20             urlrewriter.rewrite('logilab.fr', '/whatever')
       
    21             self.fail('redirect exception expected')
       
    22         except Redirect, ex:
       
    23             self.assertEquals(ex.location, 'http://www.logilab.fr/whatever')
       
    24         self.assertEquals(urlrewriter.rewrite('www.logilab.fr', '/whatever'),
       
    25                           '/whatever')
       
    26         self.assertEquals(urlrewriter.rewrite('www.logilab.fr', '/json/bla'),
       
    27                           '/json/bla')
       
    28         self.assertEquals(urlrewriter.rewrite('abcd.logilab.fr', '/json/bla'),
       
    29                           '/json/bla')
       
    30         self.assertEquals(urlrewriter.rewrite('abcd.logilab.fr', '/data/bla'),
       
    31                           '/data/bla')
       
    32         self.assertEquals(urlrewriter.rewrite('abcd.logilab.fr', '/whatever'),
       
    33                           '/m_abcd/whatever')
       
    34         self.assertEquals(urlrewriter.rewrite('abcd.fr', '/whatever'),
       
    35                           '/whatever')
       
    36 
       
    37 
       
    38 if __name__ == '__main__':
       
    39     unittest_main()