##// END OF EJS Templates
added test for crawling and memory usage
marcink -
r1332:3fdfecc5 beta
parent child Browse files
Show More
@@ -0,0 +1,96
1 # -*- coding: utf-8 -*-
2 """
3 rhodecode.tests.test_crawer
4 ~~~~~~~~~~~~~~~~~~~~~~~~~~~
5
6 Test for crawling a project for memory usage
7
8 watch -n 1 "ps aux |grep paster"
9
10 :created_on: Apr 21, 2010
11 :author: marcink
12 :copyright: (C) 2009-2011 Marcin Kuzminski <marcin@python-works.com>
13 :license: GPLv3, see COPYING for more details.
14 """
15 # This program is free software: you can redistribute it and/or modify
16 # it under the terms of the GNU General Public License as published by
17 # the Free Software Foundation, either version 3 of the License, or
18 # (at your option) any later version.
19 #
20 # This program is distributed in the hope that it will be useful,
21 # but WITHOUT ANY WARRANTY; without even the implied warranty of
22 # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
23 # GNU General Public License for more details.
24 #
25 # You should have received a copy of the GNU General Public License
26 # along with this program. If not, see <http://www.gnu.org/licenses/>.
27
28
29 import cookielib
30 import urllib
31 import urllib2
32 import vcs
33 import time
34
35 BASE_URI = 'http://127.0.0.1:5000/%s'
36 PROJECT = 'rhodecode'
37
38
39 cj = cookielib.FileCookieJar('/tmp/rc_test_cookie.txt')
40 o = urllib2.build_opener(urllib2.HTTPCookieProcessor(cj))
41 o.addheaders = [
42 ('User-agent', 'rhodecode-crawler'),
43 ('Accept-Language', 'en - us, en;q = 0.5')
44 ]
45
46 urllib2.install_opener(o)
47
48
49
50 def test_changelog_walk(pages=100):
51 total_time = 0
52 for i in range(1, pages):
53
54 page = '/'.join((PROJECT, 'changelog',))
55
56 full_uri = (BASE_URI % page) + '?' + urllib.urlencode({'page':i})
57 s = time.time()
58 f = o.open(full_uri)
59 size = len(f.read())
60 e = time.time() - s
61 total_time += e
62 print 'visited %s size:%s req:%s ms' % (full_uri, size, e)
63
64
65 print 'total_time', total_time
66 print 'average on req', total_time / float(pages)
67
68
69 def test_changeset_walk():
70
71 # test against self
72 repo = vcs.get_repo('../../../rhodecode')
73
74 total_time = 0
75 for i in repo:
76
77 raw_cs = '/'.join((PROJECT, 'changeset', i.raw_id))
78
79 full_uri = (BASE_URI % raw_cs)
80 s = time.time()
81 f = o.open(full_uri)
82 size = len(f.read())
83 e = time.time() - s
84 total_time += e
85 print 'visited %s\%s size:%s req:%s ms' % (full_uri, i, size, e)
86
87 print 'total_time', total_time
88 print 'average on req', total_time / float(len(repo))
89
90 def test_files_walk():
91 pass
92
93
94
95 test_changelog_walk()
96 #test_changeset_walk()
General Comments 0
You need to be logged in to leave comments. Login now