source: peerreviewplugin/tags/0.12/3.1/codereview/tests/reviewfile_model.py

Last change on this file was 15525, checked in by Cinc-th, 7 years ago

PeerReviewPlugin: make tests work on OS X.

File size: 2.6 KB
Line 
1# -*- coding: utf-8 -*-
2
3import unittest
4from trac.test import EnvironmentStub, Mock, MockPerm
5from ..model import  PeerReviewModel, ReviewFileModel, PeerReviewModelProvider
6from ..peerReviewCommentCallback import PeerReviewCommentHandler
7from ..peerReviewPerform import get_parent_file_id
8
9
10__author__ = 'Cinc'
11__copyright__ = "Copyright 2016"
12__license__ = "BSD"
13
14
15def _prepare_file_data(env):
16    # review_id, path, start, end, revision, status
17    files = [
18        [1, '/foo/bar', 5, 100, '1234', 'new'],
19        [1, '/foo/bar2', 6, 101, '1234', 'new'],
20        [2, '/foo/bar', 5, 100, '1234', 'new'],
21        [2, '/foo/bar2', 6, 101, '12346', 'new'],
22        [2, '/foo/bar3', 7, 102, '12347', 'new'],
23        [3, '/foo/bar2', 6, 101, '1234', 'new'],
24        [4, '/foo/bar', 5, 100, '1234', 'new'],
25        [4, '/foo/bar2', 6, 101, '1234', 'new'],
26    ]
27    for f in files:
28        rfm = ReviewFileModel(env)
29        rfm['review_id'] = f[0]
30        rfm['path'] = f[1]
31        rfm['line_start'] = f[2]
32        rfm['line_end'] = f[3]
33        rfm['revision'] = f[4]
34        rfm['status'] = f[5]
35        rfm.insert()
36
37
38def _prepare_review_data(env):
39    # name, status
40    revs = [
41        ['name1', 'new'],
42        ['name2', 'closed'],
43        ['name3', 'new'],
44        ['name4', 'foo']
45    ]
46    for rev in revs:
47        r = PeerReviewModel(env)
48        r['name'] = rev[0]
49        r['status'] = rev[1]
50        r.insert()
51
52
53class TestReviewFileModel(unittest.TestCase):
54
55    @classmethod
56    def setUpClass(cls):
57        cls.env = EnvironmentStub(default_data=True, enable=['trac.*', 'codereview.*'])
58        PeerReviewModelProvider(cls.env).environment_created()
59        _prepare_file_data(cls.env)
60        _prepare_review_data(cls.env)
61        cls.plugin = PeerReviewCommentHandler(cls.env)
62        cls.req = Mock(href=Mock(), perm=MockPerm())
63        cls.req.authname = 'tester'
64
65    @classmethod
66    def tearDownClass(cls):
67        cls.env.shutdown()
68
69    def test_get_parent_file_id(self):
70        class RFile(object):
71            pass
72
73        rf_old = ReviewFileModel(self.env)
74        rf_old['path'] = '/foo/bar'
75        rf_old['line_start'] = 5
76        rf_old['line_end'] = 100
77        self.assertEqual(1, get_parent_file_id(self.env, rf_old, 1))
78        self.assertEqual(3, get_parent_file_id(self.env, rf_old, 2))
79        self.assertEqual(0, get_parent_file_id(self.env, rf_old, 3))
80        self.assertEqual(7, get_parent_file_id(self.env, rf_old, 4))
81
82
83def reviewfile_model_suite():
84    suite = unittest.TestSuite()
85
86    suite.addTest(unittest.makeSuite(TestReviewFileModel))
87
88    return suite
Note: See TracBrowser for help on using the repository browser.