##// END OF EJS Templates
Use a single hash as argument....
Jean-Philippe Lang -
r15423:ddc575564744
parent child
Show More

The requested changes are too big and content was truncated. Show full diff

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