delayed_job_progress 0.0.1

Sign up to get free protection for your applications and to get access to all the features.
Files changed (70) hide show
  1. checksums.yaml +7 -0
  2. data/.gitignore +9 -0
  3. data/.travis.yml +2 -0
  4. data/Gemfile +15 -0
  5. data/Gemfile.lock +113 -0
  6. data/MIT-LICENSE +20 -0
  7. data/README.md +87 -0
  8. data/Rakefile +24 -0
  9. data/app/controllers/delayed_job_progress/jobs_controller.rb +49 -0
  10. data/bin/rails +12 -0
  11. data/config/routes.rb +5 -0
  12. data/delayed_job_progress.gemspec +25 -0
  13. data/lib/delayed_job_progress.rb +7 -0
  14. data/lib/delayed_job_progress/engine.rb +13 -0
  15. data/lib/delayed_job_progress/error.rb +4 -0
  16. data/lib/delayed_job_progress/extensions/job.rb +42 -0
  17. data/lib/delayed_job_progress/extensions/worker.rb +5 -0
  18. data/lib/delayed_job_progress/generators/delayed_job/progress_generator.rb +17 -0
  19. data/lib/delayed_job_progress/generators/delayed_job/templates/progress_migration.rb +29 -0
  20. data/lib/delayed_job_progress/version.rb +3 -0
  21. data/lib/tasks/delayed_job_progress_tasks.rake +4 -0
  22. data/test/delayed_job_progress_test.rb +7 -0
  23. data/test/dummy/README.rdoc +28 -0
  24. data/test/dummy/Rakefile +6 -0
  25. data/test/dummy/app/assets/images/.keep +0 -0
  26. data/test/dummy/app/assets/javascripts/application.js +13 -0
  27. data/test/dummy/app/assets/stylesheets/application.css +15 -0
  28. data/test/dummy/app/controllers/application_controller.rb +5 -0
  29. data/test/dummy/app/controllers/concerns/.keep +0 -0
  30. data/test/dummy/app/helpers/application_helper.rb +2 -0
  31. data/test/dummy/app/mailers/.keep +0 -0
  32. data/test/dummy/app/models/.keep +0 -0
  33. data/test/dummy/app/models/concerns/.keep +0 -0
  34. data/test/dummy/app/views/layouts/application.html.erb +14 -0
  35. data/test/dummy/bin/bundle +3 -0
  36. data/test/dummy/bin/rails +4 -0
  37. data/test/dummy/bin/rake +4 -0
  38. data/test/dummy/bin/setup +29 -0
  39. data/test/dummy/config.ru +4 -0
  40. data/test/dummy/config/application.rb +26 -0
  41. data/test/dummy/config/boot.rb +5 -0
  42. data/test/dummy/config/database.yml +25 -0
  43. data/test/dummy/config/environment.rb +5 -0
  44. data/test/dummy/config/environments/development.rb +41 -0
  45. data/test/dummy/config/environments/production.rb +79 -0
  46. data/test/dummy/config/environments/test.rb +42 -0
  47. data/test/dummy/config/initializers/assets.rb +11 -0
  48. data/test/dummy/config/initializers/backtrace_silencers.rb +7 -0
  49. data/test/dummy/config/initializers/cookies_serializer.rb +3 -0
  50. data/test/dummy/config/initializers/filter_parameter_logging.rb +4 -0
  51. data/test/dummy/config/initializers/inflections.rb +16 -0
  52. data/test/dummy/config/initializers/mime_types.rb +4 -0
  53. data/test/dummy/config/initializers/session_store.rb +3 -0
  54. data/test/dummy/config/initializers/wrap_parameters.rb +14 -0
  55. data/test/dummy/config/locales/en.yml +23 -0
  56. data/test/dummy/config/routes.rb +4 -0
  57. data/test/dummy/config/secrets.yml +22 -0
  58. data/test/dummy/db/schema.rb +16 -0
  59. data/test/dummy/lib/assets/.keep +0 -0
  60. data/test/dummy/log/.keep +0 -0
  61. data/test/dummy/public/404.html +67 -0
  62. data/test/dummy/public/422.html +67 -0
  63. data/test/dummy/public/500.html +66 -0
  64. data/test/dummy/public/favicon.ico +0 -0
  65. data/test/extensions/job_test.rb +74 -0
  66. data/test/extensions/worker_test.rb +40 -0
  67. data/test/generator_test.rb +14 -0
  68. data/test/jobs_controller_test.rb +71 -0
  69. data/test/test_helper.rb +71 -0
  70. metadata +223 -0
@@ -0,0 +1,14 @@
1
+ require_relative './test_helper'
2
+ require_relative '../lib/delayed_job_progress/generators/delayed_job/progress_generator'
3
+
4
+ class ScaffoldGeneratorTest < Rails::Generators::TestCase
5
+ destination File.expand_path('../tmp', File.dirname(__FILE__))
6
+
7
+ tests DelayedJob::ProgressGenerator
8
+
9
+ def test_generator
10
+ run_generator
11
+ assert_migration 'db/migrate/add_progress_to_delayed_jobs.rb'
12
+ end
13
+
14
+ end
@@ -0,0 +1,71 @@
1
+ require_relative './test_helper'
2
+
3
+ module DelayedJobProgress
4
+ class JobsControllerTest < ActionController::TestCase
5
+
6
+ def setup
7
+ @routes = Engine.routes
8
+ Delayed::Worker.delay_jobs = true
9
+
10
+ @thing = Thing.create(:name => 'test')
11
+ @job = Delayed::Job.enqueue(TestJob.new(@thing.id))
12
+ end
13
+
14
+ def test_index
15
+ get :index
16
+ assert_response :success
17
+ assert_equal 1, JSON.parse(response.body).count
18
+ end
19
+
20
+ def test_index_record_filtering
21
+ get :index, :record_type => @thing.class, :record_id => @thing.id
22
+ assert_response :success
23
+ data = JSON.parse(response.body)
24
+ assert data.is_a?(Array)
25
+ assert_equal 1, data.count
26
+
27
+ get :index, :record_type => 'invalid', :record_id => @thing.id
28
+ assert_response :success
29
+ assert_equal [], JSON.parse(response.body)
30
+
31
+ get :index, :record_type => @thing.class, :record_id => 'invalid'
32
+ assert_response :success
33
+ assert_equal [], JSON.parse(response.body)
34
+ end
35
+
36
+ def test_show
37
+ get :show, :id => @job.id
38
+ assert_response :success
39
+ data = JSON.parse(response.body)
40
+ assert_equal 'unique_identifier', data['identifier']
41
+ assert_equal 'Thing', data['record_type']
42
+ assert_equal 1, data['record_id']
43
+ assert_equal 500, data['progress_current']
44
+ assert_equal 1000, data['progress_max']
45
+ assert_equal 'initialized', data['progress_state']
46
+ end
47
+
48
+ def test_show_failure
49
+ get :show, :id => 'invalid'
50
+ assert_response :not_found
51
+ assert_equal ({'error' => 'Job not found'}), JSON.parse(response.body)
52
+ end
53
+
54
+ def test_destroy
55
+ assert_difference 'Delayed::Job.count', -1 do
56
+ delete :destroy, :id => @job.id
57
+ assert_response :no_content
58
+ end
59
+ end
60
+
61
+ def test_reset
62
+ @job.update_column(:failed_at, Time.now)
63
+
64
+ post :reload, :id => @job
65
+ assert_response :success
66
+
67
+ @job.reload
68
+ assert @job.failed_at.blank?
69
+ end
70
+ end
71
+ end
@@ -0,0 +1,71 @@
1
+ # Configure Rails Environment
2
+ ENV["RAILS_ENV"] = "test"
3
+
4
+ require File.expand_path("../../test/dummy/config/environment.rb", __FILE__)
5
+ require "rails/test_help"
6
+
7
+ # Filter out Minitest backtrace while allowing backtrace from other libraries
8
+ # to be shown.
9
+ Minitest.backtrace_filter = Minitest::BacktraceFilter.new
10
+
11
+ # loading db schema
12
+ require 'generators/delayed_job/templates/migration'
13
+ require_relative '../lib/delayed_job_progress/generators/delayed_job/templates/progress_migration'
14
+
15
+ ActiveRecord::Schema.define do
16
+ CreateDelayedJobs.up
17
+ AddProgressToDelayedJobs.up
18
+
19
+ create_table :things do |t|
20
+ t.string :name
21
+ end
22
+ end
23
+
24
+ class Thing < ActiveRecord::Base
25
+ def something
26
+ update_column(:name, 'processed')
27
+ end
28
+ end
29
+
30
+ class TestJob < Struct.new(:thing_id)
31
+ def enqueue(job)
32
+ job.record = Thing.find(thing_id)
33
+ job.identifier = 'unique_identifier'
34
+ job.progress_max = 1000
35
+ job.progress_current = 500
36
+ job.progress_state = 'initialized'
37
+ job.queue = 'reports'
38
+ end
39
+
40
+ def before(job)
41
+ @job = job
42
+ end
43
+
44
+ def perform
45
+ @job.update_column(:progress_state, 'complete')
46
+ end
47
+ end
48
+
49
+ class ActiveSupport::TestCase
50
+ # Example usage:
51
+ # assert_exception_raised do ... end
52
+ # assert_exception_raised ActiveRecord::RecordInvalid do ... end
53
+ # assert_exception_raised Plugin::Error, 'error_message' do ... end
54
+ def assert_exception(exception_class = nil, error_message = nil, &block)
55
+ exception_raised = nil
56
+ yield
57
+ rescue => exception_raised
58
+ ensure
59
+ if exception_raised
60
+ if exception_class
61
+ assert_equal exception_class, exception_raised.class, exception_raised.to_s
62
+ else
63
+ assert true
64
+ end
65
+ assert_equal error_message, exception_raised.to_s if error_message
66
+ else
67
+ flunk 'Exception was not raised'
68
+ end
69
+ end
70
+ end
71
+
metadata ADDED
@@ -0,0 +1,223 @@
1
+ --- !ruby/object:Gem::Specification
2
+ name: delayed_job_progress
3
+ version: !ruby/object:Gem::Version
4
+ version: 0.0.1
5
+ platform: ruby
6
+ authors:
7
+ - Oleg Khabarov
8
+ autorequire:
9
+ bindir: bin
10
+ cert_chain: []
11
+ date: 2015-09-08 00:00:00.000000000 Z
12
+ dependencies:
13
+ - !ruby/object:Gem::Dependency
14
+ name: rails
15
+ requirement: !ruby/object:Gem::Requirement
16
+ requirements:
17
+ - - ">="
18
+ - !ruby/object:Gem::Version
19
+ version: 4.0.0
20
+ - - "<"
21
+ - !ruby/object:Gem::Version
22
+ version: '5'
23
+ type: :runtime
24
+ prerelease: false
25
+ version_requirements: !ruby/object:Gem::Requirement
26
+ requirements:
27
+ - - ">="
28
+ - !ruby/object:Gem::Version
29
+ version: 4.0.0
30
+ - - "<"
31
+ - !ruby/object:Gem::Version
32
+ version: '5'
33
+ - !ruby/object:Gem::Dependency
34
+ name: delayed_job
35
+ requirement: !ruby/object:Gem::Requirement
36
+ requirements:
37
+ - - ">="
38
+ - !ruby/object:Gem::Version
39
+ version: '4.0'
40
+ type: :runtime
41
+ prerelease: false
42
+ version_requirements: !ruby/object:Gem::Requirement
43
+ requirements:
44
+ - - ">="
45
+ - !ruby/object:Gem::Version
46
+ version: '4.0'
47
+ - !ruby/object:Gem::Dependency
48
+ name: delayed_job_active_record
49
+ requirement: !ruby/object:Gem::Requirement
50
+ requirements:
51
+ - - ">="
52
+ - !ruby/object:Gem::Version
53
+ version: '4.0'
54
+ type: :runtime
55
+ prerelease: false
56
+ version_requirements: !ruby/object:Gem::Requirement
57
+ requirements:
58
+ - - ">="
59
+ - !ruby/object:Gem::Version
60
+ version: '4.0'
61
+ - !ruby/object:Gem::Dependency
62
+ name: sqlite3
63
+ requirement: !ruby/object:Gem::Requirement
64
+ requirements:
65
+ - - ">="
66
+ - !ruby/object:Gem::Version
67
+ version: '0'
68
+ type: :development
69
+ prerelease: false
70
+ version_requirements: !ruby/object:Gem::Requirement
71
+ requirements:
72
+ - - ">="
73
+ - !ruby/object:Gem::Version
74
+ version: '0'
75
+ description: Ability to track jobs against ActiveRecord objects
76
+ email:
77
+ - oleg@khabarov.ca
78
+ executables: []
79
+ extensions: []
80
+ extra_rdoc_files: []
81
+ files:
82
+ - ".gitignore"
83
+ - ".travis.yml"
84
+ - Gemfile
85
+ - Gemfile.lock
86
+ - MIT-LICENSE
87
+ - README.md
88
+ - Rakefile
89
+ - app/controllers/delayed_job_progress/jobs_controller.rb
90
+ - bin/rails
91
+ - config/routes.rb
92
+ - delayed_job_progress.gemspec
93
+ - lib/delayed_job_progress.rb
94
+ - lib/delayed_job_progress/engine.rb
95
+ - lib/delayed_job_progress/error.rb
96
+ - lib/delayed_job_progress/extensions/job.rb
97
+ - lib/delayed_job_progress/extensions/worker.rb
98
+ - lib/delayed_job_progress/generators/delayed_job/progress_generator.rb
99
+ - lib/delayed_job_progress/generators/delayed_job/templates/progress_migration.rb
100
+ - lib/delayed_job_progress/version.rb
101
+ - lib/tasks/delayed_job_progress_tasks.rake
102
+ - test/delayed_job_progress_test.rb
103
+ - test/dummy/README.rdoc
104
+ - test/dummy/Rakefile
105
+ - test/dummy/app/assets/images/.keep
106
+ - test/dummy/app/assets/javascripts/application.js
107
+ - test/dummy/app/assets/stylesheets/application.css
108
+ - test/dummy/app/controllers/application_controller.rb
109
+ - test/dummy/app/controllers/concerns/.keep
110
+ - test/dummy/app/helpers/application_helper.rb
111
+ - test/dummy/app/mailers/.keep
112
+ - test/dummy/app/models/.keep
113
+ - test/dummy/app/models/concerns/.keep
114
+ - test/dummy/app/views/layouts/application.html.erb
115
+ - test/dummy/bin/bundle
116
+ - test/dummy/bin/rails
117
+ - test/dummy/bin/rake
118
+ - test/dummy/bin/setup
119
+ - test/dummy/config.ru
120
+ - test/dummy/config/application.rb
121
+ - test/dummy/config/boot.rb
122
+ - test/dummy/config/database.yml
123
+ - test/dummy/config/environment.rb
124
+ - test/dummy/config/environments/development.rb
125
+ - test/dummy/config/environments/production.rb
126
+ - test/dummy/config/environments/test.rb
127
+ - test/dummy/config/initializers/assets.rb
128
+ - test/dummy/config/initializers/backtrace_silencers.rb
129
+ - test/dummy/config/initializers/cookies_serializer.rb
130
+ - test/dummy/config/initializers/filter_parameter_logging.rb
131
+ - test/dummy/config/initializers/inflections.rb
132
+ - test/dummy/config/initializers/mime_types.rb
133
+ - test/dummy/config/initializers/session_store.rb
134
+ - test/dummy/config/initializers/wrap_parameters.rb
135
+ - test/dummy/config/locales/en.yml
136
+ - test/dummy/config/routes.rb
137
+ - test/dummy/config/secrets.yml
138
+ - test/dummy/db/development.sqlite3
139
+ - test/dummy/db/schema.rb
140
+ - test/dummy/db/test.sqlite3
141
+ - test/dummy/lib/assets/.keep
142
+ - test/dummy/log/.keep
143
+ - test/dummy/log/development.log
144
+ - test/dummy/log/test.log
145
+ - test/dummy/public/404.html
146
+ - test/dummy/public/422.html
147
+ - test/dummy/public/500.html
148
+ - test/dummy/public/favicon.ico
149
+ - test/extensions/job_test.rb
150
+ - test/extensions/worker_test.rb
151
+ - test/generator_test.rb
152
+ - test/jobs_controller_test.rb
153
+ - test/test_helper.rb
154
+ homepage: http://github.com/GBH/delayed_job_progress
155
+ licenses:
156
+ - MIT
157
+ metadata: {}
158
+ post_install_message:
159
+ rdoc_options: []
160
+ require_paths:
161
+ - lib
162
+ required_ruby_version: !ruby/object:Gem::Requirement
163
+ requirements:
164
+ - - ">="
165
+ - !ruby/object:Gem::Version
166
+ version: '0'
167
+ required_rubygems_version: !ruby/object:Gem::Requirement
168
+ requirements:
169
+ - - ">="
170
+ - !ruby/object:Gem::Version
171
+ version: '0'
172
+ requirements: []
173
+ rubyforge_project:
174
+ rubygems_version: 2.4.5
175
+ signing_key:
176
+ specification_version: 4
177
+ summary: DelayedJob Progress extension
178
+ test_files:
179
+ - test/delayed_job_progress_test.rb
180
+ - test/dummy/app/assets/javascripts/application.js
181
+ - test/dummy/app/assets/stylesheets/application.css
182
+ - test/dummy/app/controllers/application_controller.rb
183
+ - test/dummy/app/helpers/application_helper.rb
184
+ - test/dummy/app/views/layouts/application.html.erb
185
+ - test/dummy/bin/bundle
186
+ - test/dummy/bin/rails
187
+ - test/dummy/bin/rake
188
+ - test/dummy/bin/setup
189
+ - test/dummy/config/application.rb
190
+ - test/dummy/config/boot.rb
191
+ - test/dummy/config/database.yml
192
+ - test/dummy/config/environment.rb
193
+ - test/dummy/config/environments/development.rb
194
+ - test/dummy/config/environments/production.rb
195
+ - test/dummy/config/environments/test.rb
196
+ - test/dummy/config/initializers/assets.rb
197
+ - test/dummy/config/initializers/backtrace_silencers.rb
198
+ - test/dummy/config/initializers/cookies_serializer.rb
199
+ - test/dummy/config/initializers/filter_parameter_logging.rb
200
+ - test/dummy/config/initializers/inflections.rb
201
+ - test/dummy/config/initializers/mime_types.rb
202
+ - test/dummy/config/initializers/session_store.rb
203
+ - test/dummy/config/initializers/wrap_parameters.rb
204
+ - test/dummy/config/locales/en.yml
205
+ - test/dummy/config/routes.rb
206
+ - test/dummy/config/secrets.yml
207
+ - test/dummy/config.ru
208
+ - test/dummy/db/development.sqlite3
209
+ - test/dummy/db/schema.rb
210
+ - test/dummy/db/test.sqlite3
211
+ - test/dummy/log/development.log
212
+ - test/dummy/log/test.log
213
+ - test/dummy/public/404.html
214
+ - test/dummy/public/422.html
215
+ - test/dummy/public/500.html
216
+ - test/dummy/public/favicon.ico
217
+ - test/dummy/Rakefile
218
+ - test/dummy/README.rdoc
219
+ - test/extensions/job_test.rb
220
+ - test/extensions/worker_test.rb
221
+ - test/generator_test.rb
222
+ - test/jobs_controller_test.rb
223
+ - test/test_helper.rb