3
3
from redminelib import exceptions
4
4
5
5
response = {
6
- 'projects ' : [
7
- {'name ' : 'Foo' , 'identifier ' : 'foo' , 'id ' : 1 },
8
- {'name ' : 'Bar' , 'identifier ' : 'bar' , 'id ' : 2 },
9
- {'name ' : 'Baz' , 'identifier ' : 'baz' , 'id ' : 3 },
6
+ 'issues ' : [
7
+ {'subject ' : 'Foo' , 'id ' : 1 , 'tracker_id ' : 1 },
8
+ {'subject ' : 'Bar' , 'id ' : 2 , 'tracker_id ' : 2 },
9
+ {'subject ' : 'Baz' , 'id ' : 3 , 'tracker_id ' : 3 },
10
10
]
11
11
}
12
12
@@ -17,159 +17,151 @@ def setUp(self):
17
17
self .response .json = mock .Mock (return_value = response )
18
18
19
19
def test_has_custom_repr (self ):
20
- self .assertEqual (repr (self .redmine .project .all ()),
21
- '<redminelib.resultsets.ResourceSet object with Project resources>' )
20
+ self .assertEqual (repr (self .redmine .issue .all ()),
21
+ '<redminelib.resultsets.ResourceSet object with Issue resources>' )
22
22
23
23
def test_offset_limit_all (self ):
24
24
self .response .json .return_value = dict (total_count = 3 , limit = 0 , offset = 0 , ** response )
25
- projects = self .redmine .project .all ()
26
- self .assertEqual (projects .limit , 0 )
27
- self .assertEqual (projects .offset , 0 )
28
- self .assertEqual (projects [0 ].id , 1 )
29
- self .assertEqual (projects [1 ].id , 2 )
30
- self .assertEqual (projects [2 ].id , 3 )
25
+ issues = self .redmine .issue .all ()
26
+ self .assertEqual (issues .limit , 0 )
27
+ self .assertEqual (issues .offset , 0 )
28
+ self .assertEqual (issues [0 ].id , 1 )
29
+ self .assertEqual (issues [1 ].id , 2 )
30
+ self .assertEqual (issues [2 ].id , 3 )
31
31
32
32
def test_offset_limit (self ):
33
33
self .response .json .return_value = {
34
- 'total_count' : 2 , 'limit' : 300 , 'offset' : 1 , 'projects ' : response ['projects ' ][1 :3 ]}
35
- projects = self .redmine .project .all ()[1 :300 ]
36
- self .assertEqual (projects .limit , 300 )
37
- self .assertEqual (projects .offset , 1 )
38
- self .assertEqual (projects [0 ].id , 2 )
39
- self .assertEqual (projects [1 ].id , 3 )
40
- self .assertEqual (projects [:1 ][0 ].id , 2 )
41
- self .assertEqual (projects [1 :][0 ].id , 3 )
42
- self .assertEqual (projects [1 :1 ][0 ].id , 3 )
34
+ 'total_count' : 2 , 'limit' : 300 , 'offset' : 1 , 'issues ' : response ['issues ' ][1 :3 ]}
35
+ issues = self .redmine .issue .all ()[1 :300 ]
36
+ self .assertEqual (issues .limit , 300 )
37
+ self .assertEqual (issues .offset , 1 )
38
+ self .assertEqual (issues [0 ].id , 2 )
39
+ self .assertEqual (issues [1 ].id , 3 )
40
+ self .assertEqual (issues [:1 ][0 ].id , 2 )
41
+ self .assertEqual (issues [1 :][0 ].id , 3 )
42
+ self .assertEqual (issues [1 :1 ][0 ].id , 3 )
43
43
44
44
def test_offset_limit_mimic (self ):
45
- projects = self .redmine .project .all ()[1 :3 ]
46
- self .assertEqual (projects .limit , 3 )
47
- self .assertEqual (projects .offset , 1 )
48
- self .assertEqual (projects [0 ].id , 2 )
49
- self .assertEqual (projects [1 ].id , 3 )
45
+ issues = self .redmine .issue .all ()[1 :3 ]
46
+ self .assertEqual (issues .limit , 3 )
47
+ self .assertEqual (issues .offset , 1 )
48
+ self .assertEqual (issues [0 ].id , 2 )
49
+ self .assertEqual (issues [1 ].id , 3 )
50
50
51
51
def test_total_count (self ):
52
52
self .response .json .return_value = dict (total_count = 3 , limit = 0 , offset = 0 , ** response )
53
- projects = self .redmine .project .all ()
54
- len (projects )
55
- self .assertEqual (projects .total_count , 3 )
53
+ issues = self .redmine .issue .all ()
54
+ len (issues )
55
+ self .assertEqual (issues .total_count , 3 )
56
56
57
57
def test_total_count_mimic (self ):
58
- response_with_custom_fields = {'project ' : dict (response [ 'projects' ][ 0 ], custom_fields = [{'id' : 1 , 'value' : 0 }])}
59
- self .response .json .return_value = response_with_custom_fields
60
- project = self .redmine .project .get ('foo' )
61
- self .assertEqual (project .custom_fields .total_count , 1 )
58
+ response_with_cf = {'issue ' : dict (custom_fields = [{'id' : 1 , 'value' : 0 }], ** response [ 'issues' ][ 0 ])}
59
+ self .response .json .return_value = response_with_cf
60
+ issue = self .redmine .issue .get (1 )
61
+ self .assertEqual (issue .custom_fields .total_count , 1 )
62
62
63
63
def test_total_count_raise_exception_if_not_evaluated (self ):
64
- self .assertRaises (exceptions .ResultSetTotalCountError , lambda : self .redmine .project .all ().total_count )
64
+ self .assertRaises (exceptions .ResultSetTotalCountError , lambda : self .redmine .issue .all ().total_count )
65
65
66
66
def test_resultset_is_empty (self ):
67
- self .response .json .return_value = {'limit' : 100 , 'projects ' : [], 'total_count' : 0 , 'offset' : 0 }
68
- projects = self .redmine .project .all ()
69
- self .assertEqual (len (projects ), 0 )
70
- self .assertEqual (list (projects ), [])
67
+ self .response .json .return_value = {'limit' : 100 , 'issues ' : [], 'total_count' : 0 , 'offset' : 0 }
68
+ issues = self .redmine .issue .all ()
69
+ self .assertEqual (len (issues ), 0 )
70
+ self .assertEqual (list (issues ), [])
71
71
72
72
def test_sliced_resultset_is_empty (self ):
73
- self .response .json .return_value = {'limit' : 100 , 'projects ' : [], 'total_count' : 0 , 'offset' : 0 }
74
- projects = self .redmine .project .all ()[:200 ]
75
- self .assertEqual (len (projects ), 0 )
76
- self .assertEqual (list (projects ), [])
73
+ self .response .json .return_value = {'limit' : 100 , 'issues ' : [], 'total_count' : 0 , 'offset' : 0 }
74
+ issues = self .redmine .issue .all ()[:200 ]
75
+ self .assertEqual (len (issues ), 0 )
76
+ self .assertEqual (list (issues ), [])
77
77
78
78
def test_supports_iteration (self ):
79
- projects = list (self .redmine .project .all ())
80
- self .assertEqual (projects [0 ].name , 'Foo' )
81
- self .assertEqual (projects [0 ].identifier , 'foo' )
82
- self .assertEqual (projects [0 ].id , 1 )
83
- self .assertEqual (projects [1 ].name , 'Bar' )
84
- self .assertEqual (projects [1 ].identifier , 'bar' )
85
- self .assertEqual (projects [1 ].id , 2 )
79
+ issues = list (self .redmine .issue .all ())
80
+ self .assertEqual (issues [0 ].subject , 'Foo' )
81
+ self .assertEqual (issues [0 ].id , 1 )
82
+ self .assertEqual (issues [1 ].subject , 'Bar' )
83
+ self .assertEqual (issues [1 ].id , 2 )
86
84
87
85
def test_supports_len (self ):
88
- self .assertEqual (len (self .redmine .project .all ()), 3 )
86
+ self .assertEqual (len (self .redmine .issue .all ()), 3 )
89
87
90
88
def test_get_method_resource_found (self ):
91
- projects = self .redmine .project .all ().get (2 )
92
- self .assertEqual (projects .id , 2 )
89
+ issues = self .redmine .issue .all ().get (2 )
90
+ self .assertEqual (issues .id , 2 )
93
91
94
92
def test_get_method_resource_not_found (self ):
95
- projects = self .redmine .project .all ().get (6 )
96
- self .assertEqual (projects , None )
93
+ issues = self .redmine .issue .all ().get (6 )
94
+ self .assertEqual (issues , None )
97
95
98
96
def test_filter_method (self ):
99
- projects = self .redmine .project .all ().filter ((1 , 3 ))
100
- self .assertEqual (projects [0 ].id , 1 )
101
- self .assertEqual (projects [1 ].id , 3 )
97
+ issues = self .redmine .issue .all ().filter ((1 , 3 ))
98
+ self .assertEqual (issues [0 ].id , 1 )
99
+ self .assertEqual (issues [1 ].id , 3 )
102
100
103
101
def test_update_method (self ):
104
- projects = self .redmine .project .all ().update (name = 'FooBar' )
105
- self .assertEqual (projects [0 ].name , 'FooBar' )
106
- self .assertEqual (projects [1 ].name , 'FooBar' )
107
- self .assertEqual (projects [2 ].name , 'FooBar' )
102
+ issues = self .redmine .issue .all ().update (subject = 'FooBar' )
103
+ self .assertEqual (issues [0 ].subject , 'FooBar' )
104
+ self .assertEqual (issues [1 ].subject , 'FooBar' )
105
+ self .assertEqual (issues [2 ].subject , 'FooBar' )
108
106
109
107
def test_delete_method (self ):
110
- self .assertEqual (self .redmine .project .all ().delete (), True )
108
+ self .assertEqual (self .redmine .issue .all ().delete (), True )
111
109
112
110
def test_resourceset_is_picklable (self ):
113
111
import pickle
114
- projects = self .redmine .project .all ()
115
- unpickled_projects = pickle .loads (pickle .dumps (projects ))
116
- self .assertEqual (projects [0 ]['name ' ], unpickled_projects [0 ]['name ' ])
117
- self .assertEqual (projects [1 ]['name ' ], unpickled_projects [1 ]['name ' ])
118
- self .assertEqual (projects [2 ]['name ' ], unpickled_projects [2 ]['name ' ])
112
+ issues = self .redmine .issue .all ()
113
+ unpickled_issues = pickle .loads (pickle .dumps (issues ))
114
+ self .assertEqual (issues [0 ]['subject ' ], unpickled_issues [0 ]['subject ' ])
115
+ self .assertEqual (issues [1 ]['subject ' ], unpickled_issues [1 ]['subject ' ])
116
+ self .assertEqual (issues [2 ]['subject ' ], unpickled_issues [2 ]['subject ' ])
119
117
120
118
def test_values_method (self ):
121
- projects = list (self .redmine .project .all ().values ())
122
- self .assertEqual (projects [0 ]['name' ], 'Foo' )
123
- self .assertEqual (projects [0 ]['identifier' ], 'foo' )
124
- self .assertEqual (projects [0 ]['id' ], 1 )
125
- self .assertEqual (projects [1 ]['name' ], 'Bar' )
126
- self .assertEqual (projects [1 ]['identifier' ], 'bar' )
127
- self .assertEqual (projects [1 ]['id' ], 2 )
128
- self .assertEqual (projects [2 ]['name' ], 'Baz' )
129
- self .assertEqual (projects [2 ]['identifier' ], 'baz' )
130
- self .assertEqual (projects [2 ]['id' ], 3 )
119
+ issues = list (self .redmine .issue .all ().values ())
120
+ self .assertEqual (issues [0 ]['subject' ], 'Foo' )
121
+ self .assertEqual (issues [0 ]['id' ], 1 )
122
+ self .assertEqual (issues [1 ]['subject' ], 'Bar' )
123
+ self .assertEqual (issues [1 ]['id' ], 2 )
124
+ self .assertEqual (issues [2 ]['subject' ], 'Baz' )
125
+ self .assertEqual (issues [2 ]['id' ], 3 )
131
126
132
127
def test_values_method_with_fields (self ):
133
- projects = list (self .redmine .project .all ().values ('name ' , 'id' ))
134
- self .assertEqual (len (projects [0 ]), 2 )
135
- self .assertEqual (projects [0 ]['name ' ], 'Foo' )
136
- self .assertEqual (projects [0 ]['id' ], 1 )
137
- self .assertEqual (len (projects [1 ]), 2 )
138
- self .assertEqual (projects [1 ]['name ' ], 'Bar' )
139
- self .assertEqual (projects [1 ]['id' ], 2 )
140
- self .assertEqual (len (projects [2 ]), 2 )
141
- self .assertEqual (projects [2 ]['name ' ], 'Baz' )
142
- self .assertEqual (projects [2 ]['id' ], 3 )
128
+ issues = list (self .redmine .issue .all ().values ('subject ' , 'id' ))
129
+ self .assertEqual (len (issues [0 ]), 2 )
130
+ self .assertEqual (issues [0 ]['subject ' ], 'Foo' )
131
+ self .assertEqual (issues [0 ]['id' ], 1 )
132
+ self .assertEqual (len (issues [1 ]), 2 )
133
+ self .assertEqual (issues [1 ]['subject ' ], 'Bar' )
134
+ self .assertEqual (issues [1 ]['id' ], 2 )
135
+ self .assertEqual (len (issues [2 ]), 2 )
136
+ self .assertEqual (issues [2 ]['subject ' ], 'Baz' )
137
+ self .assertEqual (issues [2 ]['id' ], 3 )
143
138
144
139
def test_values_list_method (self ):
145
- projects = list (self .redmine .project .all ().values_list ())
146
- self .assertIn ('Foo' , projects [0 ])
147
- self .assertIn ('foo' , projects [0 ])
148
- self .assertIn (1 , projects [0 ])
149
- self .assertIn ('Bar' , projects [1 ])
150
- self .assertIn ('bar' , projects [1 ])
151
- self .assertIn (2 , projects [1 ])
152
- self .assertIn ('Baz' , projects [2 ])
153
- self .assertIn ('baz' , projects [2 ])
154
- self .assertIn (3 , projects [2 ])
140
+ issues = list (self .redmine .issue .all ().values_list ())
141
+ self .assertIn ('Foo' , issues [0 ])
142
+ self .assertIn (1 , issues [0 ])
143
+ self .assertIn ('Bar' , issues [1 ])
144
+ self .assertIn (2 , issues [1 ])
145
+ self .assertIn ('Baz' , issues [2 ])
146
+ self .assertIn (3 , issues [2 ])
155
147
156
148
def test_values_list_method_with_fields (self ):
157
- projects = list (self .redmine .project .all ().values_list ('id' , 'name ' ))
158
- self .assertEqual (len (projects [0 ]), 2 )
159
- self .assertEqual (projects [0 ][0 ], 1 )
160
- self .assertEqual (projects [0 ][1 ], 'Foo' )
161
- self .assertEqual (len (projects [1 ]), 2 )
162
- self .assertEqual (projects [1 ][0 ], 2 )
163
- self .assertEqual (projects [1 ][1 ], 'Bar' )
164
- self .assertEqual (len (projects [2 ]), 2 )
165
- self .assertEqual (projects [2 ][0 ], 3 )
166
- self .assertEqual (projects [2 ][1 ], 'Baz' )
149
+ issues = list (self .redmine .issue .all ().values_list ('id' , 'subject ' ))
150
+ self .assertEqual (len (issues [0 ]), 2 )
151
+ self .assertEqual (issues [0 ][0 ], 1 )
152
+ self .assertEqual (issues [0 ][1 ], 'Foo' )
153
+ self .assertEqual (len (issues [1 ]), 2 )
154
+ self .assertEqual (issues [1 ][0 ], 2 )
155
+ self .assertEqual (issues [1 ][1 ], 'Bar' )
156
+ self .assertEqual (len (issues [2 ]), 2 )
157
+ self .assertEqual (issues [2 ][0 ], 3 )
158
+ self .assertEqual (issues [2 ][1 ], 'Baz' )
167
159
168
160
def test_values_list_method_flattened (self ):
169
- projects = list (self .redmine .project .all ().values_list ('id' , flat = True ))
170
- self .assertEqual (projects [0 ], 1 )
171
- self .assertEqual (projects [1 ], 2 )
172
- self .assertEqual (projects [2 ], 3 )
161
+ issues = list (self .redmine .issue .all ().values_list ('id' , flat = True ))
162
+ self .assertEqual (issues [0 ], 1 )
163
+ self .assertEqual (issues [1 ], 2 )
164
+ self .assertEqual (issues [2 ], 3 )
173
165
174
166
@mock .patch ('redminelib.open' , mock .mock_open (), create = True )
175
167
def test_export (self ):
@@ -191,4 +183,4 @@ def test_filter_param_exception(self):
191
183
self .assertRaises (exceptions .ResourceSetFilterParamError , lambda : self .redmine .project .all ().filter (1 ))
192
184
193
185
def test_index_error_exception (self ):
194
- self .assertRaises (exceptions .ResourceSetIndexError , lambda : self .redmine .project .all ()[6 ])
186
+ self .assertRaises (exceptions .ResourceSetIndexError , lambda : self .redmine .issue .all ()[6 ])
0 commit comments