##// END OF EJS Templates
Dup @generated_changeset_rev....
Jean-Philippe Lang -
r15300:745833a66c35
parent child
Show More
@@ -1,276 +1,276
1 1 module ObjectHelpers
2 2 def User.generate!(attributes={})
3 3 @generated_user_login ||= 'user0'
4 4 @generated_user_login.succ!
5 5 user = User.new(attributes)
6 6 user.login = @generated_user_login.dup if user.login.blank?
7 7 user.mail = "#{@generated_user_login}@example.com" if user.mail.blank?
8 8 user.firstname = "Bob" if user.firstname.blank?
9 9 user.lastname = "Doe" if user.lastname.blank?
10 10 yield user if block_given?
11 11 user.save!
12 12 user
13 13 end
14 14
15 15 def User.add_to_project(user, project, roles=nil)
16 16 roles = Role.find(1) if roles.nil?
17 17 roles = [roles] if roles.is_a?(Role)
18 18 Member.create!(:principal => user, :project => project, :roles => roles)
19 19 end
20 20
21 21 def Group.generate!(attributes={})
22 22 @generated_group_name ||= 'Group 0'
23 23 @generated_group_name.succ!
24 24 group = Group.new(attributes)
25 25 group.name = @generated_group_name.dup if group.name.blank?
26 26 yield group if block_given?
27 27 group.save!
28 28 group
29 29 end
30 30
31 31 def Project.generate!(attributes={})
32 32 @generated_project_identifier ||= 'project-0000'
33 33 @generated_project_identifier.succ!
34 34 project = Project.new(attributes)
35 35 project.name = @generated_project_identifier.dup if project.name.blank?
36 36 project.identifier = @generated_project_identifier.dup if project.identifier.blank?
37 37 yield project if block_given?
38 38 project.save!
39 39 project
40 40 end
41 41
42 42 def Project.generate_with_parent!(*args)
43 43 attributes = args.last.is_a?(Hash) ? args.pop : {}
44 44 parent = args.size > 0 ? args.first : Project.generate!
45 45
46 46 project = Project.generate!(attributes) do |p|
47 47 p.parent = parent
48 48 end
49 49 parent.reload if parent
50 50 project
51 51 end
52 52
53 53 def IssueStatus.generate!(attributes={})
54 54 @generated_status_name ||= 'Status 0'
55 55 @generated_status_name.succ!
56 56 status = IssueStatus.new(attributes)
57 57 status.name = @generated_status_name.dup if status.name.blank?
58 58 yield status if block_given?
59 59 status.save!
60 60 status
61 61 end
62 62
63 63 def Tracker.generate(attributes={})
64 64 @generated_tracker_name ||= 'Tracker 0'
65 65 @generated_tracker_name.succ!
66 66 tracker = Tracker.new(attributes)
67 67 tracker.name = @generated_tracker_name.dup if tracker.name.blank?
68 68 tracker.default_status ||= IssueStatus.order('position').first || IssueStatus.generate!
69 69 yield tracker if block_given?
70 70 tracker
71 71 end
72 72
73 73 def Tracker.generate!(attributes={}, &block)
74 74 tracker = Tracker.generate(attributes, &block)
75 75 tracker.save!
76 76 tracker
77 77 end
78 78
79 79 def Role.generate!(attributes={})
80 80 @generated_role_name ||= 'Role 0'
81 81 @generated_role_name.succ!
82 82 role = Role.new(attributes)
83 83 role.name = @generated_role_name.dup if role.name.blank?
84 84 yield role if block_given?
85 85 role.save!
86 86 role
87 87 end
88 88
89 89 # Generates an unsaved Issue
90 90 def Issue.generate(attributes={})
91 91 issue = Issue.new(attributes)
92 92 issue.project ||= Project.find(1)
93 93 issue.tracker ||= issue.project.trackers.first
94 94 issue.subject = 'Generated' if issue.subject.blank?
95 95 issue.author ||= User.find(2)
96 96 yield issue if block_given?
97 97 issue
98 98 end
99 99
100 100 # Generates a saved Issue
101 101 def Issue.generate!(attributes={}, &block)
102 102 issue = Issue.generate(attributes, &block)
103 103 issue.save!
104 104 issue
105 105 end
106 106
107 107 # Generates an issue with 2 children and a grandchild
108 108 def Issue.generate_with_descendants!(attributes={})
109 109 issue = Issue.generate!(attributes)
110 110 child = Issue.generate!(:project => issue.project, :subject => 'Child1', :parent_issue_id => issue.id)
111 111 Issue.generate!(:project => issue.project, :subject => 'Child2', :parent_issue_id => issue.id)
112 112 Issue.generate!(:project => issue.project, :subject => 'Child11', :parent_issue_id => child.id)
113 113 issue.reload
114 114 end
115 115
116 116 def Issue.generate_with_child!(attributes={})
117 117 issue = Issue.generate!(attributes)
118 118 Issue.generate!(:parent_issue_id => issue.id)
119 119 issue.reload
120 120 end
121 121
122 122 def Journal.generate!(attributes={})
123 123 journal = Journal.new(attributes)
124 124 journal.user ||= User.first
125 125 journal.journalized ||= Issue.first
126 126 yield journal if block_given?
127 127 journal.save!
128 128 journal
129 129 end
130 130
131 131 def Version.generate!(attributes={})
132 132 @generated_version_name ||= 'Version 0'
133 133 @generated_version_name.succ!
134 134 version = Version.new(attributes)
135 135 version.name = @generated_version_name.dup if version.name.blank?
136 136 version.project ||= Project.find(1)
137 137 yield version if block_given?
138 138 version.save!
139 139 version
140 140 end
141 141
142 142 def TimeEntry.generate!(attributes={})
143 143 entry = TimeEntry.new(attributes)
144 144 entry.user ||= User.find(2)
145 145 entry.issue ||= Issue.find(1) unless entry.project
146 146 entry.project ||= entry.issue.project
147 147 entry.activity ||= TimeEntryActivity.first
148 148 entry.spent_on ||= Date.today
149 149 entry.hours ||= 1.0
150 150 entry.save!
151 151 entry
152 152 end
153 153
154 154 def AuthSource.generate!(attributes={})
155 155 @generated_auth_source_name ||= 'Auth 0'
156 156 @generated_auth_source_name.succ!
157 157 source = AuthSource.new(attributes)
158 158 source.name = @generated_auth_source_name.dup if source.name.blank?
159 159 yield source if block_given?
160 160 source.save!
161 161 source
162 162 end
163 163
164 164 def Board.generate!(attributes={})
165 165 @generated_board_name ||= 'Forum 0'
166 166 @generated_board_name.succ!
167 167 board = Board.new(attributes)
168 168 board.name = @generated_board_name.dup if board.name.blank?
169 169 board.description = @generated_board_name.dup if board.description.blank?
170 170 yield board if block_given?
171 171 board.save!
172 172 board
173 173 end
174 174
175 175 def Attachment.generate!(attributes={})
176 176 @generated_filename ||= 'testfile0'
177 177 @generated_filename.succ!
178 178 attributes = attributes.dup
179 179 attachment = Attachment.new(attributes)
180 180 attachment.container ||= Issue.find(1)
181 181 attachment.author ||= User.find(2)
182 182 attachment.filename = @generated_filename.dup if attachment.filename.blank?
183 183 attachment.save!
184 184 attachment
185 185 end
186 186
187 187 def CustomField.generate!(attributes={})
188 188 @generated_custom_field_name ||= 'Custom field 0'
189 189 @generated_custom_field_name.succ!
190 190 field = new(attributes)
191 191 field.name = @generated_custom_field_name.dup if field.name.blank?
192 192 field.field_format = 'string' if field.field_format.blank?
193 193 yield field if block_given?
194 194 field.save!
195 195 field
196 196 end
197 197
198 198 def IssueCustomField.generate!(attributes={})
199 199 super do |field|
200 200 field.is_for_all = true unless attributes.key?(:is_for_all)
201 201 field.tracker_ids = Tracker.all.ids unless attributes.key?(:tracker_ids) || attributes.key?(:trackers)
202 202 end
203 203 end
204 204
205 205 def Changeset.generate!(attributes={})
206 206 @generated_changeset_rev ||= '123456'
207 207 @generated_changeset_rev.succ!
208 208 changeset = new(attributes)
209 209 changeset.repository ||= Project.find(1).repository
210 changeset.revision ||= @generated_changeset_rev
210 changeset.revision ||= @generated_changeset_rev.dup
211 211 changeset.committed_on ||= Time.now
212 212 yield changeset if block_given?
213 213 changeset.save!
214 214 changeset
215 215 end
216 216
217 217 def Query.generate!(attributes={})
218 218 query = new(attributes)
219 219 query.name = "Generated query" if query.name.blank?
220 220 query.user ||= User.find(1)
221 221 query.save!
222 222 query
223 223 end
224 224
225 225 def generate_import(fixture_name='import_issues.csv')
226 226 import = IssueImport.new
227 227 import.user_id = 2
228 228 import.file = uploaded_test_file(fixture_name, 'text/csv')
229 229 import.save!
230 230 import
231 231 end
232 232
233 233 def generate_import_with_mapping(fixture_name='import_issues.csv')
234 234 import = generate_import(fixture_name)
235 235
236 236 import.settings = {
237 237 'separator' => ";", 'wrapper' => '"', 'encoding' => "UTF-8",
238 238 'mapping' => {'project_id' => '1', 'tracker' => '13', 'subject' => '1'}
239 239 }
240 240 import.save!
241 241 import
242 242 end
243 243 end
244 244
245 245 module TrackerObjectHelpers
246 246 def generate_transitions!(*args)
247 247 options = args.last.is_a?(Hash) ? args.pop : {}
248 248 if args.size == 1
249 249 args << args.first
250 250 end
251 251 if options[:clear]
252 252 WorkflowTransition.where(:tracker_id => id).delete_all
253 253 end
254 254 args.each_cons(2) do |old_status_id, new_status_id|
255 255 WorkflowTransition.create!(
256 256 :tracker => self,
257 257 :role_id => (options[:role_id] || 1),
258 258 :old_status_id => old_status_id,
259 259 :new_status_id => new_status_id
260 260 )
261 261 end
262 262 end
263 263 end
264 264 Tracker.send :include, TrackerObjectHelpers
265 265
266 266 module IssueObjectHelpers
267 267 def close!
268 268 self.status = IssueStatus.where(:is_closed => true).first
269 269 save!
270 270 end
271 271
272 272 def generate_child!(attributes={})
273 273 Issue.generate!(attributes.merge(:parent_issue_id => self.id))
274 274 end
275 275 end
276 276 Issue.send :include, IssueObjectHelpers
General Comments 0
You need to be logged in to leave comments. Login now