annotate rhodecode/tests/test_libs.py @ 3774:60335b702a00 beta

invalidation: don't create CacheInvalidation records on startup Creating the records early gave an advantage before lightweight was introduced. With lightweight it is no longer necessary. The records will be created on demand anyway and there is no reason to create and maintain them before they are used.
author Mads Kiilerich <madski@unity3d.com>
date Wed, 03 Apr 2013 15:56:12 +0200
parents 71860d0737e7
children
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
1372
fced98787f40 Added tests for RhodeCode libs
Marcin Kuzminski <marcin@python-works.com>
parents:
diff changeset
1 # -*- coding: utf-8 -*-
fced98787f40 Added tests for RhodeCode libs
Marcin Kuzminski <marcin@python-works.com>
parents:
diff changeset
2 """
fced98787f40 Added tests for RhodeCode libs
Marcin Kuzminski <marcin@python-works.com>
parents:
diff changeset
3 rhodecode.tests.test_libs
fced98787f40 Added tests for RhodeCode libs
Marcin Kuzminski <marcin@python-works.com>
parents:
diff changeset
4 ~~~~~~~~~~~~~~~~~~~~~~~~~
fced98787f40 Added tests for RhodeCode libs
Marcin Kuzminski <marcin@python-works.com>
parents:
diff changeset
5
fced98787f40 Added tests for RhodeCode libs
Marcin Kuzminski <marcin@python-works.com>
parents:
diff changeset
6
1416
df04752daa64 test env update
Marcin Kuzminski <marcin@python-works.com>
parents: 1372
diff changeset
7 Package for testing various lib/helper functions in rhodecode
1818
cf51bbfb120e auto white-space removal
Marcin Kuzminski <marcin@python-works.com>
parents: 1713
diff changeset
8
1372
fced98787f40 Added tests for RhodeCode libs
Marcin Kuzminski <marcin@python-works.com>
parents:
diff changeset
9 :created_on: Jun 9, 2011
1824
89efedac4e6c 2012 copyrights
Marcin Kuzminski <marcin@python-works.com>
parents: 1818
diff changeset
10 :copyright: (C) 2011-2012 Marcin Kuzminski <marcin@python-works.com>
1532
2afe9320d5e6 updated docstrings
Marcin Kuzminski <marcin@python-works.com>
parents: 1416
diff changeset
11 :license: GPLv3, see COPYING for more details.
1372
fced98787f40 Added tests for RhodeCode libs
Marcin Kuzminski <marcin@python-works.com>
parents:
diff changeset
12 """
1532
2afe9320d5e6 updated docstrings
Marcin Kuzminski <marcin@python-works.com>
parents: 1416
diff changeset
13 # This program is free software: you can redistribute it and/or modify
2afe9320d5e6 updated docstrings
Marcin Kuzminski <marcin@python-works.com>
parents: 1416
diff changeset
14 # it under the terms of the GNU General Public License as published by
2afe9320d5e6 updated docstrings
Marcin Kuzminski <marcin@python-works.com>
parents: 1416
diff changeset
15 # the Free Software Foundation, either version 3 of the License, or
2afe9320d5e6 updated docstrings
Marcin Kuzminski <marcin@python-works.com>
parents: 1416
diff changeset
16 # (at your option) any later version.
2afe9320d5e6 updated docstrings
Marcin Kuzminski <marcin@python-works.com>
parents: 1416
diff changeset
17 #
2afe9320d5e6 updated docstrings
Marcin Kuzminski <marcin@python-works.com>
parents: 1416
diff changeset
18 # This program is distributed in the hope that it will be useful,
2afe9320d5e6 updated docstrings
Marcin Kuzminski <marcin@python-works.com>
parents: 1416
diff changeset
19 # but WITHOUT ANY WARRANTY; without even the implied warranty of
2afe9320d5e6 updated docstrings
Marcin Kuzminski <marcin@python-works.com>
parents: 1416
diff changeset
20 # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
2afe9320d5e6 updated docstrings
Marcin Kuzminski <marcin@python-works.com>
parents: 1416
diff changeset
21 # GNU General Public License for more details.
2afe9320d5e6 updated docstrings
Marcin Kuzminski <marcin@python-works.com>
parents: 1416
diff changeset
22 #
2afe9320d5e6 updated docstrings
Marcin Kuzminski <marcin@python-works.com>
parents: 1416
diff changeset
23 # You should have received a copy of the GNU General Public License
2afe9320d5e6 updated docstrings
Marcin Kuzminski <marcin@python-works.com>
parents: 1416
diff changeset
24 # along with this program. If not, see <http://www.gnu.org/licenses/>.
2790
3c0ae44557c4 more py2.5 compatibility patches
Marcin Kuzminski <marcin@python-works.com>
parents: 2753
diff changeset
25 from __future__ import with_statement
2317
c4d8ed624728 Fixed tests for new i18n changes
Marcin Kuzminski <marcin@python-works.com>
parents: 2201
diff changeset
26 import unittest
c4d8ed624728 Fixed tests for new i18n changes
Marcin Kuzminski <marcin@python-works.com>
parents: 2201
diff changeset
27 import datetime
2753
e34a6b1eb594 added test for alternative gravatar
Marcin Kuzminski <marcin@python-works.com>
parents: 2674
diff changeset
28 import hashlib
e34a6b1eb594 added test for alternative gravatar
Marcin Kuzminski <marcin@python-works.com>
parents: 2674
diff changeset
29 import mock
2317
c4d8ed624728 Fixed tests for new i18n changes
Marcin Kuzminski <marcin@python-works.com>
parents: 2201
diff changeset
30 from rhodecode.tests import *
1372
fced98787f40 Added tests for RhodeCode libs
Marcin Kuzminski <marcin@python-works.com>
parents:
diff changeset
31
fced98787f40 Added tests for RhodeCode libs
Marcin Kuzminski <marcin@python-works.com>
parents:
diff changeset
32 proto = 'http'
fced98787f40 Added tests for RhodeCode libs
Marcin Kuzminski <marcin@python-works.com>
parents:
diff changeset
33 TEST_URLS = [
fced98787f40 Added tests for RhodeCode libs
Marcin Kuzminski <marcin@python-works.com>
parents:
diff changeset
34 ('%s://127.0.0.1' % proto, ['%s://' % proto, '127.0.0.1'],
fced98787f40 Added tests for RhodeCode libs
Marcin Kuzminski <marcin@python-works.com>
parents:
diff changeset
35 '%s://127.0.0.1' % proto),
fced98787f40 Added tests for RhodeCode libs
Marcin Kuzminski <marcin@python-works.com>
parents:
diff changeset
36 ('%s://marcink@127.0.0.1' % proto, ['%s://' % proto, '127.0.0.1'],
fced98787f40 Added tests for RhodeCode libs
Marcin Kuzminski <marcin@python-works.com>
parents:
diff changeset
37 '%s://127.0.0.1' % proto),
fced98787f40 Added tests for RhodeCode libs
Marcin Kuzminski <marcin@python-works.com>
parents:
diff changeset
38 ('%s://marcink:pass@127.0.0.1' % proto, ['%s://' % proto, '127.0.0.1'],
fced98787f40 Added tests for RhodeCode libs
Marcin Kuzminski <marcin@python-works.com>
parents:
diff changeset
39 '%s://127.0.0.1' % proto),
fced98787f40 Added tests for RhodeCode libs
Marcin Kuzminski <marcin@python-works.com>
parents:
diff changeset
40 ('%s://127.0.0.1:8080' % proto, ['%s://' % proto, '127.0.0.1', '8080'],
fced98787f40 Added tests for RhodeCode libs
Marcin Kuzminski <marcin@python-works.com>
parents:
diff changeset
41 '%s://127.0.0.1:8080' % proto),
fced98787f40 Added tests for RhodeCode libs
Marcin Kuzminski <marcin@python-works.com>
parents:
diff changeset
42 ('%s://domain.org' % proto, ['%s://' % proto, 'domain.org'],
fced98787f40 Added tests for RhodeCode libs
Marcin Kuzminski <marcin@python-works.com>
parents:
diff changeset
43 '%s://domain.org' % proto),
fced98787f40 Added tests for RhodeCode libs
Marcin Kuzminski <marcin@python-works.com>
parents:
diff changeset
44 ('%s://user:pass@domain.org:8080' % proto, ['%s://' % proto, 'domain.org',
fced98787f40 Added tests for RhodeCode libs
Marcin Kuzminski <marcin@python-works.com>
parents:
diff changeset
45 '8080'],
fced98787f40 Added tests for RhodeCode libs
Marcin Kuzminski <marcin@python-works.com>
parents:
diff changeset
46 '%s://domain.org:8080' % proto),
fced98787f40 Added tests for RhodeCode libs
Marcin Kuzminski <marcin@python-works.com>
parents:
diff changeset
47 ]
fced98787f40 Added tests for RhodeCode libs
Marcin Kuzminski <marcin@python-works.com>
parents:
diff changeset
48
fced98787f40 Added tests for RhodeCode libs
Marcin Kuzminski <marcin@python-works.com>
parents:
diff changeset
49 proto = 'https'
fced98787f40 Added tests for RhodeCode libs
Marcin Kuzminski <marcin@python-works.com>
parents:
diff changeset
50 TEST_URLS += [
fced98787f40 Added tests for RhodeCode libs
Marcin Kuzminski <marcin@python-works.com>
parents:
diff changeset
51 ('%s://127.0.0.1' % proto, ['%s://' % proto, '127.0.0.1'],
fced98787f40 Added tests for RhodeCode libs
Marcin Kuzminski <marcin@python-works.com>
parents:
diff changeset
52 '%s://127.0.0.1' % proto),
fced98787f40 Added tests for RhodeCode libs
Marcin Kuzminski <marcin@python-works.com>
parents:
diff changeset
53 ('%s://marcink@127.0.0.1' % proto, ['%s://' % proto, '127.0.0.1'],
fced98787f40 Added tests for RhodeCode libs
Marcin Kuzminski <marcin@python-works.com>
parents:
diff changeset
54 '%s://127.0.0.1' % proto),
fced98787f40 Added tests for RhodeCode libs
Marcin Kuzminski <marcin@python-works.com>
parents:
diff changeset
55 ('%s://marcink:pass@127.0.0.1' % proto, ['%s://' % proto, '127.0.0.1'],
fced98787f40 Added tests for RhodeCode libs
Marcin Kuzminski <marcin@python-works.com>
parents:
diff changeset
56 '%s://127.0.0.1' % proto),
fced98787f40 Added tests for RhodeCode libs
Marcin Kuzminski <marcin@python-works.com>
parents:
diff changeset
57 ('%s://127.0.0.1:8080' % proto, ['%s://' % proto, '127.0.0.1', '8080'],
fced98787f40 Added tests for RhodeCode libs
Marcin Kuzminski <marcin@python-works.com>
parents:
diff changeset
58 '%s://127.0.0.1:8080' % proto),
fced98787f40 Added tests for RhodeCode libs
Marcin Kuzminski <marcin@python-works.com>
parents:
diff changeset
59 ('%s://domain.org' % proto, ['%s://' % proto, 'domain.org'],
fced98787f40 Added tests for RhodeCode libs
Marcin Kuzminski <marcin@python-works.com>
parents:
diff changeset
60 '%s://domain.org' % proto),
fced98787f40 Added tests for RhodeCode libs
Marcin Kuzminski <marcin@python-works.com>
parents:
diff changeset
61 ('%s://user:pass@domain.org:8080' % proto, ['%s://' % proto, 'domain.org',
fced98787f40 Added tests for RhodeCode libs
Marcin Kuzminski <marcin@python-works.com>
parents:
diff changeset
62 '8080'],
fced98787f40 Added tests for RhodeCode libs
Marcin Kuzminski <marcin@python-works.com>
parents:
diff changeset
63 '%s://domain.org:8080' % proto),
fced98787f40 Added tests for RhodeCode libs
Marcin Kuzminski <marcin@python-works.com>
parents:
diff changeset
64 ]
fced98787f40 Added tests for RhodeCode libs
Marcin Kuzminski <marcin@python-works.com>
parents:
diff changeset
65
fced98787f40 Added tests for RhodeCode libs
Marcin Kuzminski <marcin@python-works.com>
parents:
diff changeset
66
fced98787f40 Added tests for RhodeCode libs
Marcin Kuzminski <marcin@python-works.com>
parents:
diff changeset
67 class TestLibs(unittest.TestCase):
fced98787f40 Added tests for RhodeCode libs
Marcin Kuzminski <marcin@python-works.com>
parents:
diff changeset
68
3385
d21c762f5c4b revision extraction function shouldn't be so eager, just extract commits that are
Marcin Kuzminski <marcin@python-works.com>
parents: 3261
diff changeset
69 @parameterized.expand(TEST_URLS)
d21c762f5c4b revision extraction function shouldn't be so eager, just extract commits that are
Marcin Kuzminski <marcin@python-works.com>
parents: 3261
diff changeset
70 def test_uri_filter(self, test_url, expected, expected_creds):
2109
8ecfed1d8f8b utils/conf
Marcin Kuzminski <marcin@python-works.com>
parents: 1824
diff changeset
71 from rhodecode.lib.utils2 import uri_filter
3385
d21c762f5c4b revision extraction function shouldn't be so eager, just extract commits that are
Marcin Kuzminski <marcin@python-works.com>
parents: 3261
diff changeset
72 self.assertEqual(uri_filter(test_url), expected)
1372
fced98787f40 Added tests for RhodeCode libs
Marcin Kuzminski <marcin@python-works.com>
parents:
diff changeset
73
3385
d21c762f5c4b revision extraction function shouldn't be so eager, just extract commits that are
Marcin Kuzminski <marcin@python-works.com>
parents: 3261
diff changeset
74 @parameterized.expand(TEST_URLS)
d21c762f5c4b revision extraction function shouldn't be so eager, just extract commits that are
Marcin Kuzminski <marcin@python-works.com>
parents: 3261
diff changeset
75 def test_credentials_filter(self, test_url, expected, expected_creds):
d21c762f5c4b revision extraction function shouldn't be so eager, just extract commits that are
Marcin Kuzminski <marcin@python-works.com>
parents: 3261
diff changeset
76 from rhodecode.lib.utils2 import credentials_filter
d21c762f5c4b revision extraction function shouldn't be so eager, just extract commits that are
Marcin Kuzminski <marcin@python-works.com>
parents: 3261
diff changeset
77 self.assertEqual(credentials_filter(test_url), expected_creds)
1372
fced98787f40 Added tests for RhodeCode libs
Marcin Kuzminski <marcin@python-works.com>
parents:
diff changeset
78
3385
d21c762f5c4b revision extraction function shouldn't be so eager, just extract commits that are
Marcin Kuzminski <marcin@python-works.com>
parents: 3261
diff changeset
79 @parameterized.expand([('t', True),
d21c762f5c4b revision extraction function shouldn't be so eager, just extract commits that are
Marcin Kuzminski <marcin@python-works.com>
parents: 3261
diff changeset
80 ('true', True),
d21c762f5c4b revision extraction function shouldn't be so eager, just extract commits that are
Marcin Kuzminski <marcin@python-works.com>
parents: 3261
diff changeset
81 ('y', True),
d21c762f5c4b revision extraction function shouldn't be so eager, just extract commits that are
Marcin Kuzminski <marcin@python-works.com>
parents: 3261
diff changeset
82 ('yes', True),
d21c762f5c4b revision extraction function shouldn't be so eager, just extract commits that are
Marcin Kuzminski <marcin@python-works.com>
parents: 3261
diff changeset
83 ('on', True),
d21c762f5c4b revision extraction function shouldn't be so eager, just extract commits that are
Marcin Kuzminski <marcin@python-works.com>
parents: 3261
diff changeset
84 ('1', True),
d21c762f5c4b revision extraction function shouldn't be so eager, just extract commits that are
Marcin Kuzminski <marcin@python-works.com>
parents: 3261
diff changeset
85 ('Y', True),
d21c762f5c4b revision extraction function shouldn't be so eager, just extract commits that are
Marcin Kuzminski <marcin@python-works.com>
parents: 3261
diff changeset
86 ('yeS', True),
d21c762f5c4b revision extraction function shouldn't be so eager, just extract commits that are
Marcin Kuzminski <marcin@python-works.com>
parents: 3261
diff changeset
87 ('Y', True),
d21c762f5c4b revision extraction function shouldn't be so eager, just extract commits that are
Marcin Kuzminski <marcin@python-works.com>
parents: 3261
diff changeset
88 ('TRUE', True),
d21c762f5c4b revision extraction function shouldn't be so eager, just extract commits that are
Marcin Kuzminski <marcin@python-works.com>
parents: 3261
diff changeset
89 ('T', True),
d21c762f5c4b revision extraction function shouldn't be so eager, just extract commits that are
Marcin Kuzminski <marcin@python-works.com>
parents: 3261
diff changeset
90 ('False', False),
d21c762f5c4b revision extraction function shouldn't be so eager, just extract commits that are
Marcin Kuzminski <marcin@python-works.com>
parents: 3261
diff changeset
91 ('F', False),
d21c762f5c4b revision extraction function shouldn't be so eager, just extract commits that are
Marcin Kuzminski <marcin@python-works.com>
parents: 3261
diff changeset
92 ('FALSE', False),
d21c762f5c4b revision extraction function shouldn't be so eager, just extract commits that are
Marcin Kuzminski <marcin@python-works.com>
parents: 3261
diff changeset
93 ('0', False),
d21c762f5c4b revision extraction function shouldn't be so eager, just extract commits that are
Marcin Kuzminski <marcin@python-works.com>
parents: 3261
diff changeset
94 ('-1', False),
d21c762f5c4b revision extraction function shouldn't be so eager, just extract commits that are
Marcin Kuzminski <marcin@python-works.com>
parents: 3261
diff changeset
95 ('', False)
d21c762f5c4b revision extraction function shouldn't be so eager, just extract commits that are
Marcin Kuzminski <marcin@python-works.com>
parents: 3261
diff changeset
96 ])
d21c762f5c4b revision extraction function shouldn't be so eager, just extract commits that are
Marcin Kuzminski <marcin@python-works.com>
parents: 3261
diff changeset
97 def test_str2bool(self, str_bool, expected):
2109
8ecfed1d8f8b utils/conf
Marcin Kuzminski <marcin@python-works.com>
parents: 1824
diff changeset
98 from rhodecode.lib.utils2 import str2bool
3385
d21c762f5c4b revision extraction function shouldn't be so eager, just extract commits that are
Marcin Kuzminski <marcin@python-works.com>
parents: 3261
diff changeset
99 self.assertEqual(str2bool(str_bool), expected)
1372
fced98787f40 Added tests for RhodeCode libs
Marcin Kuzminski <marcin@python-works.com>
parents:
diff changeset
100
1713
54687aa00724 Tests updates, Session refactoring
Marcin Kuzminski <marcin@python-works.com>
parents: 1532
diff changeset
101 def test_mention_extractor(self):
2109
8ecfed1d8f8b utils/conf
Marcin Kuzminski <marcin@python-works.com>
parents: 1824
diff changeset
102 from rhodecode.lib.utils2 import extract_mentioned_users
2201
ea5ff843b200 #426 fixed mention extracting regex
Marcin Kuzminski <marcin@python-works.com>
parents: 2109
diff changeset
103 sample = (
ea5ff843b200 #426 fixed mention extracting regex
Marcin Kuzminski <marcin@python-works.com>
parents: 2109
diff changeset
104 "@first hi there @marcink here's my email marcin@email.com "
ea5ff843b200 #426 fixed mention extracting regex
Marcin Kuzminski <marcin@python-works.com>
parents: 2109
diff changeset
105 "@lukaszb check @one_more22 it pls @ ttwelve @D[] @one@two@three "
ea5ff843b200 #426 fixed mention extracting regex
Marcin Kuzminski <marcin@python-works.com>
parents: 2109
diff changeset
106 "@MARCIN @maRCiN @2one_more22 @john please see this http://org.pl "
ea5ff843b200 #426 fixed mention extracting regex
Marcin Kuzminski <marcin@python-works.com>
parents: 2109
diff changeset
107 "@marian.user just do it @marco-polo and next extract @marco_polo "
ea5ff843b200 #426 fixed mention extracting regex
Marcin Kuzminski <marcin@python-works.com>
parents: 2109
diff changeset
108 "user.dot hej ! not-needed maril@domain.org"
ea5ff843b200 #426 fixed mention extracting regex
Marcin Kuzminski <marcin@python-works.com>
parents: 2109
diff changeset
109 )
ea5ff843b200 #426 fixed mention extracting regex
Marcin Kuzminski <marcin@python-works.com>
parents: 2109
diff changeset
110
ea5ff843b200 #426 fixed mention extracting regex
Marcin Kuzminski <marcin@python-works.com>
parents: 2109
diff changeset
111 s = sorted([
ea5ff843b200 #426 fixed mention extracting regex
Marcin Kuzminski <marcin@python-works.com>
parents: 2109
diff changeset
112 'first', 'marcink', 'lukaszb', 'one_more22', 'MARCIN', 'maRCiN', 'john',
ea5ff843b200 #426 fixed mention extracting regex
Marcin Kuzminski <marcin@python-works.com>
parents: 2109
diff changeset
113 'marian.user', 'marco-polo', 'marco_polo'
ea5ff843b200 #426 fixed mention extracting regex
Marcin Kuzminski <marcin@python-works.com>
parents: 2109
diff changeset
114 ], key=lambda k: k.lower())
1713
54687aa00724 Tests updates, Session refactoring
Marcin Kuzminski <marcin@python-works.com>
parents: 1532
diff changeset
115 self.assertEqual(s, extract_mentioned_users(sample))
2317
c4d8ed624728 Fixed tests for new i18n changes
Marcin Kuzminski <marcin@python-works.com>
parents: 2201
diff changeset
116
3644
71860d0737e7 - age tests cannot be dynamic, there are cases when age calculation
Marcin Kuzminski <marcin@python-works.com>
parents: 3405
diff changeset
117 @parameterized.expand([
71860d0737e7 - age tests cannot be dynamic, there are cases when age calculation
Marcin Kuzminski <marcin@python-works.com>
parents: 3405
diff changeset
118 (dict(), u'just now'),
71860d0737e7 - age tests cannot be dynamic, there are cases when age calculation
Marcin Kuzminski <marcin@python-works.com>
parents: 3405
diff changeset
119 (dict(seconds= -1), u'1 second ago'),
71860d0737e7 - age tests cannot be dynamic, there are cases when age calculation
Marcin Kuzminski <marcin@python-works.com>
parents: 3405
diff changeset
120 (dict(seconds= -60 * 2), u'2 minutes ago'),
71860d0737e7 - age tests cannot be dynamic, there are cases when age calculation
Marcin Kuzminski <marcin@python-works.com>
parents: 3405
diff changeset
121 (dict(hours= -1), u'1 hour ago'),
71860d0737e7 - age tests cannot be dynamic, there are cases when age calculation
Marcin Kuzminski <marcin@python-works.com>
parents: 3405
diff changeset
122 (dict(hours= -24), u'1 day ago'),
71860d0737e7 - age tests cannot be dynamic, there are cases when age calculation
Marcin Kuzminski <marcin@python-works.com>
parents: 3405
diff changeset
123 (dict(hours= -24 * 5), u'5 days ago'),
71860d0737e7 - age tests cannot be dynamic, there are cases when age calculation
Marcin Kuzminski <marcin@python-works.com>
parents: 3405
diff changeset
124 (dict(months= -1), u'1 month ago'),
71860d0737e7 - age tests cannot be dynamic, there are cases when age calculation
Marcin Kuzminski <marcin@python-works.com>
parents: 3405
diff changeset
125 (dict(months= -1, days= -2), u'1 month and 2 days ago'),
71860d0737e7 - age tests cannot be dynamic, there are cases when age calculation
Marcin Kuzminski <marcin@python-works.com>
parents: 3405
diff changeset
126 (dict(years= -1, months= -1), u'1 year and 1 month ago'),
71860d0737e7 - age tests cannot be dynamic, there are cases when age calculation
Marcin Kuzminski <marcin@python-works.com>
parents: 3405
diff changeset
127 ])
71860d0737e7 - age tests cannot be dynamic, there are cases when age calculation
Marcin Kuzminski <marcin@python-works.com>
parents: 3405
diff changeset
128 def test_age(self, age_args, expected):
2317
c4d8ed624728 Fixed tests for new i18n changes
Marcin Kuzminski <marcin@python-works.com>
parents: 2201
diff changeset
129 from rhodecode.lib.utils2 import age
3261
54a439edaf99 fixed AGE funtion for future dates, testa are now cleaner with dateutil usage
Marcin Kuzminski <marcin@python-works.com>
parents: 3132
diff changeset
130 from dateutil import relativedelta
3644
71860d0737e7 - age tests cannot be dynamic, there are cases when age calculation
Marcin Kuzminski <marcin@python-works.com>
parents: 3405
diff changeset
131 n = datetime.datetime(year=2012, month=5, day=17)
3261
54a439edaf99 fixed AGE funtion for future dates, testa are now cleaner with dateutil usage
Marcin Kuzminski <marcin@python-works.com>
parents: 3132
diff changeset
132 delt = lambda *args, **kwargs: relativedelta.relativedelta(*args, **kwargs)
3644
71860d0737e7 - age tests cannot be dynamic, there are cases when age calculation
Marcin Kuzminski <marcin@python-works.com>
parents: 3405
diff changeset
133 self.assertEqual(age(n + delt(**age_args), now=n), expected)
71860d0737e7 - age tests cannot be dynamic, there are cases when age calculation
Marcin Kuzminski <marcin@python-works.com>
parents: 3405
diff changeset
134
71860d0737e7 - age tests cannot be dynamic, there are cases when age calculation
Marcin Kuzminski <marcin@python-works.com>
parents: 3405
diff changeset
135 @parameterized.expand([
3261
54a439edaf99 fixed AGE funtion for future dates, testa are now cleaner with dateutil usage
Marcin Kuzminski <marcin@python-works.com>
parents: 3132
diff changeset
136
3644
71860d0737e7 - age tests cannot be dynamic, there are cases when age calculation
Marcin Kuzminski <marcin@python-works.com>
parents: 3405
diff changeset
137 (dict(), u'just now'),
71860d0737e7 - age tests cannot be dynamic, there are cases when age calculation
Marcin Kuzminski <marcin@python-works.com>
parents: 3405
diff changeset
138 (dict(seconds=1), u'in 1 second'),
71860d0737e7 - age tests cannot be dynamic, there are cases when age calculation
Marcin Kuzminski <marcin@python-works.com>
parents: 3405
diff changeset
139 (dict(seconds=60 * 2), u'in 2 minutes'),
71860d0737e7 - age tests cannot be dynamic, there are cases when age calculation
Marcin Kuzminski <marcin@python-works.com>
parents: 3405
diff changeset
140 (dict(hours=1), u'in 1 hour'),
71860d0737e7 - age tests cannot be dynamic, there are cases when age calculation
Marcin Kuzminski <marcin@python-works.com>
parents: 3405
diff changeset
141 (dict(hours=24), u'in 1 day'),
71860d0737e7 - age tests cannot be dynamic, there are cases when age calculation
Marcin Kuzminski <marcin@python-works.com>
parents: 3405
diff changeset
142 (dict(hours=24 * 5), u'in 5 days'),
71860d0737e7 - age tests cannot be dynamic, there are cases when age calculation
Marcin Kuzminski <marcin@python-works.com>
parents: 3405
diff changeset
143 (dict(months=1), u'in 1 month'),
71860d0737e7 - age tests cannot be dynamic, there are cases when age calculation
Marcin Kuzminski <marcin@python-works.com>
parents: 3405
diff changeset
144 (dict(months=1, days=1), u'in 1 month and 1 day'),
71860d0737e7 - age tests cannot be dynamic, there are cases when age calculation
Marcin Kuzminski <marcin@python-works.com>
parents: 3405
diff changeset
145 (dict(years=1, months=1), u'in 1 year and 1 month')
71860d0737e7 - age tests cannot be dynamic, there are cases when age calculation
Marcin Kuzminski <marcin@python-works.com>
parents: 3405
diff changeset
146 ])
71860d0737e7 - age tests cannot be dynamic, there are cases when age calculation
Marcin Kuzminski <marcin@python-works.com>
parents: 3405
diff changeset
147 def test_age_in_future(self, age_args, expected):
2902
e2b2791d1e7c fixed #597 commits in future get negative age.
Marcin Kuzminski <marcin@python-works.com>
parents: 2846
diff changeset
148 from rhodecode.lib.utils2 import age
3261
54a439edaf99 fixed AGE funtion for future dates, testa are now cleaner with dateutil usage
Marcin Kuzminski <marcin@python-works.com>
parents: 3132
diff changeset
149 from dateutil import relativedelta
3644
71860d0737e7 - age tests cannot be dynamic, there are cases when age calculation
Marcin Kuzminski <marcin@python-works.com>
parents: 3405
diff changeset
150 n = datetime.datetime(year=2012, month=5, day=17)
3261
54a439edaf99 fixed AGE funtion for future dates, testa are now cleaner with dateutil usage
Marcin Kuzminski <marcin@python-works.com>
parents: 3132
diff changeset
151 delt = lambda *args, **kwargs: relativedelta.relativedelta(*args, **kwargs)
3644
71860d0737e7 - age tests cannot be dynamic, there are cases when age calculation
Marcin Kuzminski <marcin@python-works.com>
parents: 3405
diff changeset
152 self.assertEqual(age(n + delt(**age_args), now=n), expected)
2902
e2b2791d1e7c fixed #597 commits in future get negative age.
Marcin Kuzminski <marcin@python-works.com>
parents: 2846
diff changeset
153
2674
a221706dab50 merged + fixed pull request #62: Implemented metatags and visualisation options.
Marcin Kuzminski <marcin@python-works.com>
parents: 2371
diff changeset
154 def test_tag_exctrator(self):
a221706dab50 merged + fixed pull request #62: Implemented metatags and visualisation options.
Marcin Kuzminski <marcin@python-works.com>
parents: 2371
diff changeset
155 sample = (
a221706dab50 merged + fixed pull request #62: Implemented metatags and visualisation options.
Marcin Kuzminski <marcin@python-works.com>
parents: 2371
diff changeset
156 "hello pta[tag] gog [[]] [[] sda ero[or]d [me =>>< sa]"
a221706dab50 merged + fixed pull request #62: Implemented metatags and visualisation options.
Marcin Kuzminski <marcin@python-works.com>
parents: 2371
diff changeset
157 "[requires] [stale] [see<>=>] [see => http://url.com]"
a221706dab50 merged + fixed pull request #62: Implemented metatags and visualisation options.
Marcin Kuzminski <marcin@python-works.com>
parents: 2371
diff changeset
158 "[requires => url] [lang => python] [just a tag]"
a221706dab50 merged + fixed pull request #62: Implemented metatags and visualisation options.
Marcin Kuzminski <marcin@python-works.com>
parents: 2371
diff changeset
159 "[,d] [ => ULR ] [obsolete] [desc]]"
a221706dab50 merged + fixed pull request #62: Implemented metatags and visualisation options.
Marcin Kuzminski <marcin@python-works.com>
parents: 2371
diff changeset
160 )
a221706dab50 merged + fixed pull request #62: Implemented metatags and visualisation options.
Marcin Kuzminski <marcin@python-works.com>
parents: 2371
diff changeset
161 from rhodecode.lib.helpers import desc_stylize
a221706dab50 merged + fixed pull request #62: Implemented metatags and visualisation options.
Marcin Kuzminski <marcin@python-works.com>
parents: 2371
diff changeset
162 res = desc_stylize(sample)
a221706dab50 merged + fixed pull request #62: Implemented metatags and visualisation options.
Marcin Kuzminski <marcin@python-works.com>
parents: 2371
diff changeset
163 self.assertTrue('<div class="metatag" tag="tag">tag</div>' in res)
a221706dab50 merged + fixed pull request #62: Implemented metatags and visualisation options.
Marcin Kuzminski <marcin@python-works.com>
parents: 2371
diff changeset
164 self.assertTrue('<div class="metatag" tag="obsolete">obsolete</div>' in res)
a221706dab50 merged + fixed pull request #62: Implemented metatags and visualisation options.
Marcin Kuzminski <marcin@python-works.com>
parents: 2371
diff changeset
165 self.assertTrue('<div class="metatag" tag="stale">stale</div>' in res)
a221706dab50 merged + fixed pull request #62: Implemented metatags and visualisation options.
Marcin Kuzminski <marcin@python-works.com>
parents: 2371
diff changeset
166 self.assertTrue('<div class="metatag" tag="lang">python</div>' in res)
a221706dab50 merged + fixed pull request #62: Implemented metatags and visualisation options.
Marcin Kuzminski <marcin@python-works.com>
parents: 2371
diff changeset
167 self.assertTrue('<div class="metatag" tag="requires">requires =&gt; <a href="/url">url</a></div>' in res)
a221706dab50 merged + fixed pull request #62: Implemented metatags and visualisation options.
Marcin Kuzminski <marcin@python-works.com>
parents: 2371
diff changeset
168 self.assertTrue('<div class="metatag" tag="tag">tag</div>' in res)
2753
e34a6b1eb594 added test for alternative gravatar
Marcin Kuzminski <marcin@python-works.com>
parents: 2674
diff changeset
169
e34a6b1eb594 added test for alternative gravatar
Marcin Kuzminski <marcin@python-works.com>
parents: 2674
diff changeset
170 def test_alternative_gravatar(self):
e34a6b1eb594 added test for alternative gravatar
Marcin Kuzminski <marcin@python-works.com>
parents: 2674
diff changeset
171 from rhodecode.lib.helpers import gravatar_url
e34a6b1eb594 added test for alternative gravatar
Marcin Kuzminski <marcin@python-works.com>
parents: 2674
diff changeset
172 _md5 = lambda s: hashlib.md5(s).hexdigest()
e34a6b1eb594 added test for alternative gravatar
Marcin Kuzminski <marcin@python-works.com>
parents: 2674
diff changeset
173
e34a6b1eb594 added test for alternative gravatar
Marcin Kuzminski <marcin@python-works.com>
parents: 2674
diff changeset
174 def fake_conf(**kwargs):
e34a6b1eb594 added test for alternative gravatar
Marcin Kuzminski <marcin@python-works.com>
parents: 2674
diff changeset
175 from pylons import config
e34a6b1eb594 added test for alternative gravatar
Marcin Kuzminski <marcin@python-works.com>
parents: 2674
diff changeset
176 config['app_conf'] = {}
e34a6b1eb594 added test for alternative gravatar
Marcin Kuzminski <marcin@python-works.com>
parents: 2674
diff changeset
177 config['app_conf']['use_gravatar'] = True
e34a6b1eb594 added test for alternative gravatar
Marcin Kuzminski <marcin@python-works.com>
parents: 2674
diff changeset
178 config['app_conf'].update(kwargs)
e34a6b1eb594 added test for alternative gravatar
Marcin Kuzminski <marcin@python-works.com>
parents: 2674
diff changeset
179 return config
2836
819eb7f8a555 Implemented patch from andrewsh ref #565 Add support for {netloc} and {scheme}
Marcin Kuzminski <marcin@python-works.com>
parents: 2790
diff changeset
180
819eb7f8a555 Implemented patch from andrewsh ref #565 Add support for {netloc} and {scheme}
Marcin Kuzminski <marcin@python-works.com>
parents: 2790
diff changeset
181 class fake_url():
819eb7f8a555 Implemented patch from andrewsh ref #565 Add support for {netloc} and {scheme}
Marcin Kuzminski <marcin@python-works.com>
parents: 2790
diff changeset
182 @classmethod
819eb7f8a555 Implemented patch from andrewsh ref #565 Add support for {netloc} and {scheme}
Marcin Kuzminski <marcin@python-works.com>
parents: 2790
diff changeset
183 def current(cls, *args, **kwargs):
819eb7f8a555 Implemented patch from andrewsh ref #565 Add support for {netloc} and {scheme}
Marcin Kuzminski <marcin@python-works.com>
parents: 2790
diff changeset
184 return 'https://server.com'
819eb7f8a555 Implemented patch from andrewsh ref #565 Add support for {netloc} and {scheme}
Marcin Kuzminski <marcin@python-works.com>
parents: 2790
diff changeset
185
819eb7f8a555 Implemented patch from andrewsh ref #565 Add support for {netloc} and {scheme}
Marcin Kuzminski <marcin@python-works.com>
parents: 2790
diff changeset
186 with mock.patch('pylons.url', fake_url):
819eb7f8a555 Implemented patch from andrewsh ref #565 Add support for {netloc} and {scheme}
Marcin Kuzminski <marcin@python-works.com>
parents: 2790
diff changeset
187 fake = fake_conf(alternative_gravatar_url='http://test.com/{email}')
819eb7f8a555 Implemented patch from andrewsh ref #565 Add support for {netloc} and {scheme}
Marcin Kuzminski <marcin@python-works.com>
parents: 2790
diff changeset
188 with mock.patch('pylons.config', fake):
819eb7f8a555 Implemented patch from andrewsh ref #565 Add support for {netloc} and {scheme}
Marcin Kuzminski <marcin@python-works.com>
parents: 2790
diff changeset
189 from pylons import url
2846
620669b2a88b fixed gravatar test typo
Marcin Kuzminski <marcin@python-works.com>
parents: 2836
diff changeset
190 assert url.current() == 'https://server.com'
2836
819eb7f8a555 Implemented patch from andrewsh ref #565 Add support for {netloc} and {scheme}
Marcin Kuzminski <marcin@python-works.com>
parents: 2790
diff changeset
191 grav = gravatar_url(email_address='test@foo.com', size=24)
819eb7f8a555 Implemented patch from andrewsh ref #565 Add support for {netloc} and {scheme}
Marcin Kuzminski <marcin@python-works.com>
parents: 2790
diff changeset
192 assert grav == 'http://test.com/test@foo.com'
819eb7f8a555 Implemented patch from andrewsh ref #565 Add support for {netloc} and {scheme}
Marcin Kuzminski <marcin@python-works.com>
parents: 2790
diff changeset
193
819eb7f8a555 Implemented patch from andrewsh ref #565 Add support for {netloc} and {scheme}
Marcin Kuzminski <marcin@python-works.com>
parents: 2790
diff changeset
194 fake = fake_conf(alternative_gravatar_url='http://test.com/{email}')
819eb7f8a555 Implemented patch from andrewsh ref #565 Add support for {netloc} and {scheme}
Marcin Kuzminski <marcin@python-works.com>
parents: 2790
diff changeset
195 with mock.patch('pylons.config', fake):
819eb7f8a555 Implemented patch from andrewsh ref #565 Add support for {netloc} and {scheme}
Marcin Kuzminski <marcin@python-works.com>
parents: 2790
diff changeset
196 grav = gravatar_url(email_address='test@foo.com', size=24)
819eb7f8a555 Implemented patch from andrewsh ref #565 Add support for {netloc} and {scheme}
Marcin Kuzminski <marcin@python-works.com>
parents: 2790
diff changeset
197 assert grav == 'http://test.com/test@foo.com'
2753
e34a6b1eb594 added test for alternative gravatar
Marcin Kuzminski <marcin@python-works.com>
parents: 2674
diff changeset
198
2836
819eb7f8a555 Implemented patch from andrewsh ref #565 Add support for {netloc} and {scheme}
Marcin Kuzminski <marcin@python-works.com>
parents: 2790
diff changeset
199 fake = fake_conf(alternative_gravatar_url='http://test.com/{md5email}')
819eb7f8a555 Implemented patch from andrewsh ref #565 Add support for {netloc} and {scheme}
Marcin Kuzminski <marcin@python-works.com>
parents: 2790
diff changeset
200 with mock.patch('pylons.config', fake):
819eb7f8a555 Implemented patch from andrewsh ref #565 Add support for {netloc} and {scheme}
Marcin Kuzminski <marcin@python-works.com>
parents: 2790
diff changeset
201 em = 'test@foo.com'
819eb7f8a555 Implemented patch from andrewsh ref #565 Add support for {netloc} and {scheme}
Marcin Kuzminski <marcin@python-works.com>
parents: 2790
diff changeset
202 grav = gravatar_url(email_address=em, size=24)
819eb7f8a555 Implemented patch from andrewsh ref #565 Add support for {netloc} and {scheme}
Marcin Kuzminski <marcin@python-works.com>
parents: 2790
diff changeset
203 assert grav == 'http://test.com/%s' % (_md5(em))
2753
e34a6b1eb594 added test for alternative gravatar
Marcin Kuzminski <marcin@python-works.com>
parents: 2674
diff changeset
204
2836
819eb7f8a555 Implemented patch from andrewsh ref #565 Add support for {netloc} and {scheme}
Marcin Kuzminski <marcin@python-works.com>
parents: 2790
diff changeset
205 fake = fake_conf(alternative_gravatar_url='http://test.com/{md5email}/{size}')
819eb7f8a555 Implemented patch from andrewsh ref #565 Add support for {netloc} and {scheme}
Marcin Kuzminski <marcin@python-works.com>
parents: 2790
diff changeset
206 with mock.patch('pylons.config', fake):
819eb7f8a555 Implemented patch from andrewsh ref #565 Add support for {netloc} and {scheme}
Marcin Kuzminski <marcin@python-works.com>
parents: 2790
diff changeset
207 em = 'test@foo.com'
819eb7f8a555 Implemented patch from andrewsh ref #565 Add support for {netloc} and {scheme}
Marcin Kuzminski <marcin@python-works.com>
parents: 2790
diff changeset
208 grav = gravatar_url(email_address=em, size=24)
819eb7f8a555 Implemented patch from andrewsh ref #565 Add support for {netloc} and {scheme}
Marcin Kuzminski <marcin@python-works.com>
parents: 2790
diff changeset
209 assert grav == 'http://test.com/%s/%s' % (_md5(em), 24)
819eb7f8a555 Implemented patch from andrewsh ref #565 Add support for {netloc} and {scheme}
Marcin Kuzminski <marcin@python-works.com>
parents: 2790
diff changeset
210
819eb7f8a555 Implemented patch from andrewsh ref #565 Add support for {netloc} and {scheme}
Marcin Kuzminski <marcin@python-works.com>
parents: 2790
diff changeset
211 fake = fake_conf(alternative_gravatar_url='{scheme}://{netloc}/{md5email}/{size}')
819eb7f8a555 Implemented patch from andrewsh ref #565 Add support for {netloc} and {scheme}
Marcin Kuzminski <marcin@python-works.com>
parents: 2790
diff changeset
212 with mock.patch('pylons.config', fake):
819eb7f8a555 Implemented patch from andrewsh ref #565 Add support for {netloc} and {scheme}
Marcin Kuzminski <marcin@python-works.com>
parents: 2790
diff changeset
213 em = 'test@foo.com'
819eb7f8a555 Implemented patch from andrewsh ref #565 Add support for {netloc} and {scheme}
Marcin Kuzminski <marcin@python-works.com>
parents: 2790
diff changeset
214 grav = gravatar_url(email_address=em, size=24)
819eb7f8a555 Implemented patch from andrewsh ref #565 Add support for {netloc} and {scheme}
Marcin Kuzminski <marcin@python-works.com>
parents: 2790
diff changeset
215 assert grav == 'https://server.com/%s/%s' % (_md5(em), 24)
3385
d21c762f5c4b revision extraction function shouldn't be so eager, just extract commits that are
Marcin Kuzminski <marcin@python-works.com>
parents: 3261
diff changeset
216
3405
a9adca4ba3c9 fixed urlify changesets regex + tests
Marcin Kuzminski <marcin@python-works.com>
parents: 3394
diff changeset
217 def _quick_url(self, text, tmpl="""<a class="revision-link" href="%s">%s</a>""", url_=None):
a9adca4ba3c9 fixed urlify changesets regex + tests
Marcin Kuzminski <marcin@python-works.com>
parents: 3394
diff changeset
218 """
a9adca4ba3c9 fixed urlify changesets regex + tests
Marcin Kuzminski <marcin@python-works.com>
parents: 3394
diff changeset
219 Changes `some text url[foo]` => `some text <a href="/">foo</a>
a9adca4ba3c9 fixed urlify changesets regex + tests
Marcin Kuzminski <marcin@python-works.com>
parents: 3394
diff changeset
220
a9adca4ba3c9 fixed urlify changesets regex + tests
Marcin Kuzminski <marcin@python-works.com>
parents: 3394
diff changeset
221 :param text:
a9adca4ba3c9 fixed urlify changesets regex + tests
Marcin Kuzminski <marcin@python-works.com>
parents: 3394
diff changeset
222 """
a9adca4ba3c9 fixed urlify changesets regex + tests
Marcin Kuzminski <marcin@python-works.com>
parents: 3394
diff changeset
223 import re
3644
71860d0737e7 - age tests cannot be dynamic, there are cases when age calculation
Marcin Kuzminski <marcin@python-works.com>
parents: 3405
diff changeset
224 # quickly change expected url[] into a link
3405
a9adca4ba3c9 fixed urlify changesets regex + tests
Marcin Kuzminski <marcin@python-works.com>
parents: 3394
diff changeset
225 URL_PAT = re.compile(r'(?:url\[)(.+?)(?:\])')
a9adca4ba3c9 fixed urlify changesets regex + tests
Marcin Kuzminski <marcin@python-works.com>
parents: 3394
diff changeset
226
a9adca4ba3c9 fixed urlify changesets regex + tests
Marcin Kuzminski <marcin@python-works.com>
parents: 3394
diff changeset
227 def url_func(match_obj):
a9adca4ba3c9 fixed urlify changesets regex + tests
Marcin Kuzminski <marcin@python-works.com>
parents: 3394
diff changeset
228 _url = match_obj.groups()[0]
a9adca4ba3c9 fixed urlify changesets regex + tests
Marcin Kuzminski <marcin@python-works.com>
parents: 3394
diff changeset
229 return tmpl % (url_ or '/some-url', _url)
a9adca4ba3c9 fixed urlify changesets regex + tests
Marcin Kuzminski <marcin@python-works.com>
parents: 3394
diff changeset
230 return URL_PAT.sub(url_func, text)
a9adca4ba3c9 fixed urlify changesets regex + tests
Marcin Kuzminski <marcin@python-works.com>
parents: 3394
diff changeset
231
3385
d21c762f5c4b revision extraction function shouldn't be so eager, just extract commits that are
Marcin Kuzminski <marcin@python-works.com>
parents: 3261
diff changeset
232 @parameterized.expand([
d21c762f5c4b revision extraction function shouldn't be so eager, just extract commits that are
Marcin Kuzminski <marcin@python-works.com>
parents: 3261
diff changeset
233 ("",
d21c762f5c4b revision extraction function shouldn't be so eager, just extract commits that are
Marcin Kuzminski <marcin@python-works.com>
parents: 3261
diff changeset
234 ""),
d21c762f5c4b revision extraction function shouldn't be so eager, just extract commits that are
Marcin Kuzminski <marcin@python-works.com>
parents: 3261
diff changeset
235 ("git-svn-id: https://svn.apache.org/repos/asf/libcloud/trunk@1441655 13f79535-47bb-0310-9956-ffa450edef68",
d21c762f5c4b revision extraction function shouldn't be so eager, just extract commits that are
Marcin Kuzminski <marcin@python-works.com>
parents: 3261
diff changeset
236 "git-svn-id: https://svn.apache.org/repos/asf/libcloud/trunk@1441655 13f79535-47bb-0310-9956-ffa450edef68"),
d21c762f5c4b revision extraction function shouldn't be so eager, just extract commits that are
Marcin Kuzminski <marcin@python-works.com>
parents: 3261
diff changeset
237 ("from rev 000000000000",
d21c762f5c4b revision extraction function shouldn't be so eager, just extract commits that are
Marcin Kuzminski <marcin@python-works.com>
parents: 3261
diff changeset
238 "from rev url[000000000000]"),
d21c762f5c4b revision extraction function shouldn't be so eager, just extract commits that are
Marcin Kuzminski <marcin@python-works.com>
parents: 3261
diff changeset
239 ("from rev 000000000000123123 also rev 000000000000",
d21c762f5c4b revision extraction function shouldn't be so eager, just extract commits that are
Marcin Kuzminski <marcin@python-works.com>
parents: 3261
diff changeset
240 "from rev url[000000000000123123] also rev url[000000000000]"),
d21c762f5c4b revision extraction function shouldn't be so eager, just extract commits that are
Marcin Kuzminski <marcin@python-works.com>
parents: 3261
diff changeset
241 ("this should-000 00",
d21c762f5c4b revision extraction function shouldn't be so eager, just extract commits that are
Marcin Kuzminski <marcin@python-works.com>
parents: 3261
diff changeset
242 "this should-000 00"),
d21c762f5c4b revision extraction function shouldn't be so eager, just extract commits that are
Marcin Kuzminski <marcin@python-works.com>
parents: 3261
diff changeset
243 ("longtextffffffffff rev 123123123123",
d21c762f5c4b revision extraction function shouldn't be so eager, just extract commits that are
Marcin Kuzminski <marcin@python-works.com>
parents: 3261
diff changeset
244 "longtextffffffffff rev url[123123123123]"),
d21c762f5c4b revision extraction function shouldn't be so eager, just extract commits that are
Marcin Kuzminski <marcin@python-works.com>
parents: 3261
diff changeset
245 ("rev ffffffffffffffffffffffffffffffffffffffffffffffffff",
d21c762f5c4b revision extraction function shouldn't be so eager, just extract commits that are
Marcin Kuzminski <marcin@python-works.com>
parents: 3261
diff changeset
246 "rev ffffffffffffffffffffffffffffffffffffffffffffffffff"),
d21c762f5c4b revision extraction function shouldn't be so eager, just extract commits that are
Marcin Kuzminski <marcin@python-works.com>
parents: 3261
diff changeset
247 ("ffffffffffff some text traalaa",
d21c762f5c4b revision extraction function shouldn't be so eager, just extract commits that are
Marcin Kuzminski <marcin@python-works.com>
parents: 3261
diff changeset
248 "url[ffffffffffff] some text traalaa"),
d21c762f5c4b revision extraction function shouldn't be so eager, just extract commits that are
Marcin Kuzminski <marcin@python-works.com>
parents: 3261
diff changeset
249 ("""Multi line
3394
fe2bb88bf7ac whitespace cleanup
Marcin Kuzminski <marcin@python-works.com>
parents: 3385
diff changeset
250 123123123123
3405
a9adca4ba3c9 fixed urlify changesets regex + tests
Marcin Kuzminski <marcin@python-works.com>
parents: 3394
diff changeset
251 some text 123123123123
a9adca4ba3c9 fixed urlify changesets regex + tests
Marcin Kuzminski <marcin@python-works.com>
parents: 3394
diff changeset
252 sometimes !
a9adca4ba3c9 fixed urlify changesets regex + tests
Marcin Kuzminski <marcin@python-works.com>
parents: 3394
diff changeset
253 """,
3385
d21c762f5c4b revision extraction function shouldn't be so eager, just extract commits that are
Marcin Kuzminski <marcin@python-works.com>
parents: 3261
diff changeset
254 """Multi line
3394
fe2bb88bf7ac whitespace cleanup
Marcin Kuzminski <marcin@python-works.com>
parents: 3385
diff changeset
255 url[123123123123]
3405
a9adca4ba3c9 fixed urlify changesets regex + tests
Marcin Kuzminski <marcin@python-works.com>
parents: 3394
diff changeset
256 some text url[123123123123]
a9adca4ba3c9 fixed urlify changesets regex + tests
Marcin Kuzminski <marcin@python-works.com>
parents: 3394
diff changeset
257 sometimes !
a9adca4ba3c9 fixed urlify changesets regex + tests
Marcin Kuzminski <marcin@python-works.com>
parents: 3394
diff changeset
258 """)
3385
d21c762f5c4b revision extraction function shouldn't be so eager, just extract commits that are
Marcin Kuzminski <marcin@python-works.com>
parents: 3261
diff changeset
259 ])
d21c762f5c4b revision extraction function shouldn't be so eager, just extract commits that are
Marcin Kuzminski <marcin@python-works.com>
parents: 3261
diff changeset
260 def test_urlify_changesets(self, sample, expected):
d21c762f5c4b revision extraction function shouldn't be so eager, just extract commits that are
Marcin Kuzminski <marcin@python-works.com>
parents: 3261
diff changeset
261 def fake_url(self, *args, **kwargs):
d21c762f5c4b revision extraction function shouldn't be so eager, just extract commits that are
Marcin Kuzminski <marcin@python-works.com>
parents: 3261
diff changeset
262 return '/some-url'
d21c762f5c4b revision extraction function shouldn't be so eager, just extract commits that are
Marcin Kuzminski <marcin@python-works.com>
parents: 3261
diff changeset
263
3405
a9adca4ba3c9 fixed urlify changesets regex + tests
Marcin Kuzminski <marcin@python-works.com>
parents: 3394
diff changeset
264 expected = self._quick_url(expected)
3385
d21c762f5c4b revision extraction function shouldn't be so eager, just extract commits that are
Marcin Kuzminski <marcin@python-works.com>
parents: 3261
diff changeset
265
d21c762f5c4b revision extraction function shouldn't be so eager, just extract commits that are
Marcin Kuzminski <marcin@python-works.com>
parents: 3261
diff changeset
266 with mock.patch('pylons.url', fake_url):
d21c762f5c4b revision extraction function shouldn't be so eager, just extract commits that are
Marcin Kuzminski <marcin@python-works.com>
parents: 3261
diff changeset
267 from rhodecode.lib.helpers import urlify_changesets
d21c762f5c4b revision extraction function shouldn't be so eager, just extract commits that are
Marcin Kuzminski <marcin@python-works.com>
parents: 3261
diff changeset
268 self.assertEqual(urlify_changesets(sample, 'repo_name'), expected)
3405
a9adca4ba3c9 fixed urlify changesets regex + tests
Marcin Kuzminski <marcin@python-works.com>
parents: 3394
diff changeset
269
a9adca4ba3c9 fixed urlify changesets regex + tests
Marcin Kuzminski <marcin@python-works.com>
parents: 3394
diff changeset
270 @parameterized.expand([
a9adca4ba3c9 fixed urlify changesets regex + tests
Marcin Kuzminski <marcin@python-works.com>
parents: 3394
diff changeset
271 ("",
a9adca4ba3c9 fixed urlify changesets regex + tests
Marcin Kuzminski <marcin@python-works.com>
parents: 3394
diff changeset
272 "",
a9adca4ba3c9 fixed urlify changesets regex + tests
Marcin Kuzminski <marcin@python-works.com>
parents: 3394
diff changeset
273 ""),
a9adca4ba3c9 fixed urlify changesets regex + tests
Marcin Kuzminski <marcin@python-works.com>
parents: 3394
diff changeset
274 ("https://svn.apache.org/repos",
a9adca4ba3c9 fixed urlify changesets regex + tests
Marcin Kuzminski <marcin@python-works.com>
parents: 3394
diff changeset
275 "url[https://svn.apache.org/repos]",
a9adca4ba3c9 fixed urlify changesets regex + tests
Marcin Kuzminski <marcin@python-works.com>
parents: 3394
diff changeset
276 "https://svn.apache.org/repos"),
a9adca4ba3c9 fixed urlify changesets regex + tests
Marcin Kuzminski <marcin@python-works.com>
parents: 3394
diff changeset
277 ("http://svn.apache.org/repos",
a9adca4ba3c9 fixed urlify changesets regex + tests
Marcin Kuzminski <marcin@python-works.com>
parents: 3394
diff changeset
278 "url[http://svn.apache.org/repos]",
a9adca4ba3c9 fixed urlify changesets regex + tests
Marcin Kuzminski <marcin@python-works.com>
parents: 3394
diff changeset
279 "http://svn.apache.org/repos"),
a9adca4ba3c9 fixed urlify changesets regex + tests
Marcin Kuzminski <marcin@python-works.com>
parents: 3394
diff changeset
280 ("from rev a also rev http://google.com",
a9adca4ba3c9 fixed urlify changesets regex + tests
Marcin Kuzminski <marcin@python-works.com>
parents: 3394
diff changeset
281 "from rev a also rev url[http://google.com]",
a9adca4ba3c9 fixed urlify changesets regex + tests
Marcin Kuzminski <marcin@python-works.com>
parents: 3394
diff changeset
282 "http://google.com"),
a9adca4ba3c9 fixed urlify changesets regex + tests
Marcin Kuzminski <marcin@python-works.com>
parents: 3394
diff changeset
283 ("""Multi line
a9adca4ba3c9 fixed urlify changesets regex + tests
Marcin Kuzminski <marcin@python-works.com>
parents: 3394
diff changeset
284 https://foo.bar.com
a9adca4ba3c9 fixed urlify changesets regex + tests
Marcin Kuzminski <marcin@python-works.com>
parents: 3394
diff changeset
285 some text lalala""",
a9adca4ba3c9 fixed urlify changesets regex + tests
Marcin Kuzminski <marcin@python-works.com>
parents: 3394
diff changeset
286 """Multi line
a9adca4ba3c9 fixed urlify changesets regex + tests
Marcin Kuzminski <marcin@python-works.com>
parents: 3394
diff changeset
287 url[https://foo.bar.com]
a9adca4ba3c9 fixed urlify changesets regex + tests
Marcin Kuzminski <marcin@python-works.com>
parents: 3394
diff changeset
288 some text lalala""",
a9adca4ba3c9 fixed urlify changesets regex + tests
Marcin Kuzminski <marcin@python-works.com>
parents: 3394
diff changeset
289 "https://foo.bar.com")
a9adca4ba3c9 fixed urlify changesets regex + tests
Marcin Kuzminski <marcin@python-works.com>
parents: 3394
diff changeset
290 ])
a9adca4ba3c9 fixed urlify changesets regex + tests
Marcin Kuzminski <marcin@python-works.com>
parents: 3394
diff changeset
291 def test_urlify_test(self, sample, expected, url_):
a9adca4ba3c9 fixed urlify changesets regex + tests
Marcin Kuzminski <marcin@python-works.com>
parents: 3394
diff changeset
292 from rhodecode.lib.helpers import urlify_text
a9adca4ba3c9 fixed urlify changesets regex + tests
Marcin Kuzminski <marcin@python-works.com>
parents: 3394
diff changeset
293 expected = self._quick_url(expected,
a9adca4ba3c9 fixed urlify changesets regex + tests
Marcin Kuzminski <marcin@python-works.com>
parents: 3394
diff changeset
294 tmpl="""<a href="%s">%s</a>""", url_=url_)
a9adca4ba3c9 fixed urlify changesets regex + tests
Marcin Kuzminski <marcin@python-works.com>
parents: 3394
diff changeset
295 self.assertEqual(urlify_text(sample), expected)