Mercurial > kallithea
comparison rhodecode/tests/functional/test_admin.py @ 3063:ca2b21819dfd beta
Implemented better support for Wildcard queries
add username column to journal for caching logs after user deletion
added tests for admin journal
migrations
author | Marcin Kuzminski <marcin@python-works.com> |
---|---|
date | Wed, 05 Dec 2012 23:59:13 +0100 |
parents | dd06bdf974c8 |
children | cc7eedb5323c |
comparison
equal
deleted
inserted
replaced
3062:a08624dd675e | 3063:ca2b21819dfd |
---|---|
1 import os | |
2 import csv | |
3 import datetime | |
1 from rhodecode.tests import * | 4 from rhodecode.tests import * |
5 from rhodecode.model.db import UserLog | |
6 from rhodecode.model.meta import Session | |
7 from rhodecode.lib.utils2 import safe_unicode | |
8 | |
9 dn = os.path.dirname | |
10 FIXTURES = os.path.join(dn(dn(os.path.abspath(__file__))), 'fixtures') | |
11 | |
2 | 12 |
3 class TestAdminController(TestController): | 13 class TestAdminController(TestController): |
14 | |
15 @classmethod | |
16 def setup_class(cls): | |
17 UserLog.query().delete() | |
18 Session().commit() | |
19 with open(os.path.join(FIXTURES, 'journal_dump.csv')) as f: | |
20 for row in csv.DictReader(f): | |
21 ul = UserLog() | |
22 for k, v in row.iteritems(): | |
23 v = safe_unicode(v) | |
24 if k == 'action_date': | |
25 v = datetime.datetime.strptime(v, '%Y-%m-%d %H:%M:%S.%f') | |
26 setattr(ul, k, v) | |
27 Session().add(ul) | |
28 Session().commit() | |
29 | |
30 @classmethod | |
31 def teardown_class(cls): | |
32 UserLog.query().delete() | |
33 Session().commit() | |
4 | 34 |
5 def test_index(self): | 35 def test_index(self): |
6 self.log_user() | 36 self.log_user() |
7 response = self.app.get(url(controller='admin/admin', action='index')) | 37 response = self.app.get(url(controller='admin/admin', action='index')) |
8 assert 'Admin journal' in response.body, 'No proper title in dashboard' | 38 response.mustcontain('Admin journal') |
9 # Test response... | 39 |
40 def test_filter_all_entries(self): | |
41 self.log_user() | |
42 response = self.app.get(url(controller='admin/admin', action='index',)) | |
43 response.mustcontain('2034 entries') | |
44 | |
45 def test_filter_journal_filter_exact_match_on_repository(self): | |
46 self.log_user() | |
47 response = self.app.get(url(controller='admin/admin', action='index', | |
48 filter='repository:rhodecode')) | |
49 response.mustcontain('3 entries') | |
50 | |
51 def test_filter_journal_filter_wildcard_on_repository(self): | |
52 self.log_user() | |
53 response = self.app.get(url(controller='admin/admin', action='index', | |
54 filter='repository:*test*')) | |
55 response.mustcontain('862 entries') | |
56 | |
57 def test_filter_journal_filter_prefix_on_repository(self): | |
58 self.log_user() | |
59 response = self.app.get(url(controller='admin/admin', action='index', | |
60 filter='repository:test*')) | |
61 response.mustcontain('257 entries') | |
62 | |
63 def test_filter_journal_filter_prefix_on_repository_and_user(self): | |
64 self.log_user() | |
65 response = self.app.get(url(controller='admin/admin', action='index', | |
66 filter='repository:test* AND username:demo')) | |
67 response.mustcontain('130 entries') | |
68 | |
69 def test_filter_journal_filter_prefix_on_repository_or_other_repo(self): | |
70 self.log_user() | |
71 response = self.app.get(url(controller='admin/admin', action='index', | |
72 filter='repository:test* OR repository:rhodecode')) | |
73 response.mustcontain('260 entries') # 257 + 3 | |
74 | |
75 def test_filter_journal_filter_exact_match_on_username(self): | |
76 self.log_user() | |
77 response = self.app.get(url(controller='admin/admin', action='index', | |
78 filter='username:demo')) | |
79 response.mustcontain('1087 entries') | |
80 | |
81 def test_filter_journal_filter_wildcard_on_username(self): | |
82 self.log_user() | |
83 response = self.app.get(url(controller='admin/admin', action='index', | |
84 filter='username:*test*')) | |
85 response.mustcontain('100 entries') | |
86 | |
87 def test_filter_journal_filter_prefix_on_username(self): | |
88 self.log_user() | |
89 response = self.app.get(url(controller='admin/admin', action='index', | |
90 filter='username:demo*')) | |
91 response.mustcontain('1101 entries') | |
92 | |
93 def test_filter_journal_filter_prefix_on_user_or_other_user(self): | |
94 self.log_user() | |
95 response = self.app.get(url(controller='admin/admin', action='index', | |
96 filter='username:demo OR username:volcan')) | |
97 response.mustcontain('1095 entries') # 1087 + 8 | |
98 | |
99 def test_filter_journal_filter_wildcard_on_action(self): | |
100 self.log_user() | |
101 response = self.app.get(url(controller='admin/admin', action='index', | |
102 filter='action:*pull_request*')) | |
103 response.mustcontain('187 entries') |