delayed_job_progress 0.0.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
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