fun_with_testing 0.0.4 → 0.0.10
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.
- checksums.yaml +5 -13
- data/CHANGELOG.markdown +38 -0
- data/Gemfile +33 -11
- data/README.rdoc +3 -6
- data/Rakefile +38 -17
- data/VERSION +1 -1
- data/lib/fun_with/testing/assertions/basics.rb +250 -138
- data/lib/fun_with/testing/assertions_test_case.rb +67 -0
- data/lib/fun_with/testing/assertions_test_mocker.rb +15 -0
- data/lib/fun_with/testing/test_case.rb +1 -71
- data/lib/fun_with/testing/test_case_extensions.rb +47 -0
- data/lib/fun_with/testing/verbosity_methods.rb +33 -0
- data/lib/fun_with_testing.rb +16 -18
- data/test/helper.rb +3 -37
- data/test/test_assertions.rb +609 -14
- data/test/test_fun_with_testing.rb +3 -7
- data/test/test_verbosity.rb +2 -1
- metadata +19 -134
- data/lib/fun_with/testing/assertions/active_record.rb +0 -108
- data/lib/fun_with/testing/assertions/fun_with_files.rb +0 -109
- data/test/test_test_mode.rb +0 -28
metadata
CHANGED
|
@@ -1,144 +1,32 @@
|
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
|
2
2
|
name: fun_with_testing
|
|
3
3
|
version: !ruby/object:Gem::Version
|
|
4
|
-
version: 0.0.
|
|
4
|
+
version: 0.0.10
|
|
5
5
|
platform: ruby
|
|
6
6
|
authors:
|
|
7
7
|
- Bryce Anderson
|
|
8
|
-
autorequire:
|
|
9
8
|
bindir: bin
|
|
10
9
|
cert_chain: []
|
|
11
|
-
date:
|
|
12
|
-
dependencies:
|
|
13
|
-
- !ruby/object:Gem::Dependency
|
|
14
|
-
name: shoulda
|
|
15
|
-
requirement: !ruby/object:Gem::Requirement
|
|
16
|
-
requirements:
|
|
17
|
-
- - ! '>='
|
|
18
|
-
- !ruby/object:Gem::Version
|
|
19
|
-
version: '3.5'
|
|
20
|
-
- - ~>
|
|
21
|
-
- !ruby/object:Gem::Version
|
|
22
|
-
version: '3'
|
|
23
|
-
type: :runtime
|
|
24
|
-
prerelease: false
|
|
25
|
-
version_requirements: !ruby/object:Gem::Requirement
|
|
26
|
-
requirements:
|
|
27
|
-
- - ! '>='
|
|
28
|
-
- !ruby/object:Gem::Version
|
|
29
|
-
version: '3.5'
|
|
30
|
-
- - ~>
|
|
31
|
-
- !ruby/object:Gem::Version
|
|
32
|
-
version: '3'
|
|
33
|
-
- !ruby/object:Gem::Dependency
|
|
34
|
-
name: rdoc
|
|
35
|
-
requirement: !ruby/object:Gem::Requirement
|
|
36
|
-
requirements:
|
|
37
|
-
- - ~>
|
|
38
|
-
- !ruby/object:Gem::Version
|
|
39
|
-
version: '3.12'
|
|
40
|
-
type: :runtime
|
|
41
|
-
prerelease: false
|
|
42
|
-
version_requirements: !ruby/object:Gem::Requirement
|
|
43
|
-
requirements:
|
|
44
|
-
- - ~>
|
|
45
|
-
- !ruby/object:Gem::Version
|
|
46
|
-
version: '3.12'
|
|
47
|
-
- !ruby/object:Gem::Dependency
|
|
48
|
-
name: bundler
|
|
49
|
-
requirement: !ruby/object:Gem::Requirement
|
|
50
|
-
requirements:
|
|
51
|
-
- - ~>
|
|
52
|
-
- !ruby/object:Gem::Version
|
|
53
|
-
version: '1.0'
|
|
54
|
-
type: :runtime
|
|
55
|
-
prerelease: false
|
|
56
|
-
version_requirements: !ruby/object:Gem::Requirement
|
|
57
|
-
requirements:
|
|
58
|
-
- - ~>
|
|
59
|
-
- !ruby/object:Gem::Version
|
|
60
|
-
version: '1.0'
|
|
61
|
-
- !ruby/object:Gem::Dependency
|
|
62
|
-
name: jeweler
|
|
63
|
-
requirement: !ruby/object:Gem::Requirement
|
|
64
|
-
requirements:
|
|
65
|
-
- - ~>
|
|
66
|
-
- !ruby/object:Gem::Version
|
|
67
|
-
version: '2.0'
|
|
68
|
-
type: :runtime
|
|
69
|
-
prerelease: false
|
|
70
|
-
version_requirements: !ruby/object:Gem::Requirement
|
|
71
|
-
requirements:
|
|
72
|
-
- - ~>
|
|
73
|
-
- !ruby/object:Gem::Version
|
|
74
|
-
version: '2.0'
|
|
75
|
-
- !ruby/object:Gem::Dependency
|
|
76
|
-
name: simplecov
|
|
77
|
-
requirement: !ruby/object:Gem::Requirement
|
|
78
|
-
requirements:
|
|
79
|
-
- - ! '>='
|
|
80
|
-
- !ruby/object:Gem::Version
|
|
81
|
-
version: '0.8'
|
|
82
|
-
- - ~>
|
|
83
|
-
- !ruby/object:Gem::Version
|
|
84
|
-
version: '0'
|
|
85
|
-
type: :runtime
|
|
86
|
-
prerelease: false
|
|
87
|
-
version_requirements: !ruby/object:Gem::Requirement
|
|
88
|
-
requirements:
|
|
89
|
-
- - ! '>='
|
|
90
|
-
- !ruby/object:Gem::Version
|
|
91
|
-
version: '0.8'
|
|
92
|
-
- - ~>
|
|
93
|
-
- !ruby/object:Gem::Version
|
|
94
|
-
version: '0'
|
|
95
|
-
- !ruby/object:Gem::Dependency
|
|
96
|
-
name: debugger
|
|
97
|
-
requirement: !ruby/object:Gem::Requirement
|
|
98
|
-
requirements:
|
|
99
|
-
- - ~>
|
|
100
|
-
- !ruby/object:Gem::Version
|
|
101
|
-
version: '1.6'
|
|
102
|
-
type: :runtime
|
|
103
|
-
prerelease: false
|
|
104
|
-
version_requirements: !ruby/object:Gem::Requirement
|
|
105
|
-
requirements:
|
|
106
|
-
- - ~>
|
|
107
|
-
- !ruby/object:Gem::Version
|
|
108
|
-
version: '1.6'
|
|
109
|
-
- !ruby/object:Gem::Dependency
|
|
110
|
-
name: minitest
|
|
111
|
-
requirement: !ruby/object:Gem::Requirement
|
|
112
|
-
requirements:
|
|
113
|
-
- - ~>
|
|
114
|
-
- !ruby/object:Gem::Version
|
|
115
|
-
version: '5'
|
|
116
|
-
type: :runtime
|
|
117
|
-
prerelease: false
|
|
118
|
-
version_requirements: !ruby/object:Gem::Requirement
|
|
119
|
-
requirements:
|
|
120
|
-
- - ~>
|
|
121
|
-
- !ruby/object:Gem::Version
|
|
122
|
-
version: '5'
|
|
10
|
+
date: 1980-01-02 00:00:00.000000000 Z
|
|
11
|
+
dependencies: []
|
|
123
12
|
description: A place to stash Test::Unit assertions I've found handy. Use at your
|
|
124
|
-
own risk
|
|
13
|
+
own risk.
|
|
125
14
|
email: keeputahweird@gmail.com
|
|
126
15
|
executables: []
|
|
127
16
|
extensions: []
|
|
128
|
-
extra_rdoc_files:
|
|
129
|
-
- LICENSE.txt
|
|
130
|
-
- README.rdoc
|
|
17
|
+
extra_rdoc_files: []
|
|
131
18
|
files:
|
|
132
|
-
- ./lib/fun_with/testing/assertions/
|
|
133
|
-
- ./lib/fun_with/testing/
|
|
134
|
-
- ./lib/fun_with/testing/
|
|
135
|
-
- ./lib/fun_with/testing/test_case.rb
|
|
136
|
-
- ./lib/
|
|
137
|
-
- ./
|
|
138
|
-
- ./
|
|
139
|
-
- ./test/
|
|
140
|
-
- ./test/
|
|
141
|
-
- ./test/
|
|
19
|
+
- "./lib/fun_with/testing/assertions/basics.rb"
|
|
20
|
+
- "./lib/fun_with/testing/assertions_test_case.rb"
|
|
21
|
+
- "./lib/fun_with/testing/assertions_test_mocker.rb"
|
|
22
|
+
- "./lib/fun_with/testing/test_case.rb"
|
|
23
|
+
- "./lib/fun_with/testing/test_case_extensions.rb"
|
|
24
|
+
- "./lib/fun_with/testing/verbosity_methods.rb"
|
|
25
|
+
- "./lib/fun_with_testing.rb"
|
|
26
|
+
- "./test/helper.rb"
|
|
27
|
+
- "./test/test_assertions.rb"
|
|
28
|
+
- "./test/test_fun_with_testing.rb"
|
|
29
|
+
- "./test/test_verbosity.rb"
|
|
142
30
|
- CHANGELOG.markdown
|
|
143
31
|
- Gemfile
|
|
144
32
|
- LICENSE.txt
|
|
@@ -149,24 +37,21 @@ homepage: http://github.com/darthschmoo/fun_with_testing
|
|
|
149
37
|
licenses:
|
|
150
38
|
- MIT
|
|
151
39
|
metadata: {}
|
|
152
|
-
post_install_message:
|
|
153
40
|
rdoc_options: []
|
|
154
41
|
require_paths:
|
|
155
42
|
- lib
|
|
156
43
|
required_ruby_version: !ruby/object:Gem::Requirement
|
|
157
44
|
requirements:
|
|
158
|
-
- -
|
|
45
|
+
- - ">="
|
|
159
46
|
- !ruby/object:Gem::Version
|
|
160
47
|
version: '0'
|
|
161
48
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
|
162
49
|
requirements:
|
|
163
|
-
- -
|
|
50
|
+
- - ">="
|
|
164
51
|
- !ruby/object:Gem::Version
|
|
165
52
|
version: '0'
|
|
166
53
|
requirements: []
|
|
167
|
-
|
|
168
|
-
rubygems_version: 2.2.2
|
|
169
|
-
signing_key:
|
|
54
|
+
rubygems_version: 4.0.14
|
|
170
55
|
specification_version: 4
|
|
171
56
|
summary: A place to stash Test::Unit assertions I've found handy.
|
|
172
57
|
test_files: []
|
|
@@ -1,108 +0,0 @@
|
|
|
1
|
-
module FunWith
|
|
2
|
-
module Testing
|
|
3
|
-
module Assertions
|
|
4
|
-
module ActiveRecord
|
|
5
|
-
def assert_record_save( record, message = "")
|
|
6
|
-
result = record.save
|
|
7
|
-
|
|
8
|
-
message = "Record #{record} did not save properly. "
|
|
9
|
-
message += record.errors.map{ |k,v| "#{k} : #{v}"}.join(", ")
|
|
10
|
-
|
|
11
|
-
safe_assert_block message do
|
|
12
|
-
result
|
|
13
|
-
end
|
|
14
|
-
end
|
|
15
|
-
|
|
16
|
-
# Usage: get("index"); assert_response_success( :template => "index" )
|
|
17
|
-
#
|
|
18
|
-
def assert_response_success( opts = {} )
|
|
19
|
-
safe_assert_block "@response is nil" do
|
|
20
|
-
!@response.nil?
|
|
21
|
-
end
|
|
22
|
-
|
|
23
|
-
if @response.error?
|
|
24
|
-
puts @response.body
|
|
25
|
-
elsif @response.redirect?
|
|
26
|
-
raise Minitest::Unit::AssertionFailedError.new( "Expected success, was redirect to #{@response.redirected_to} with flash #{flash}" )
|
|
27
|
-
end
|
|
28
|
-
|
|
29
|
-
assert_response :success
|
|
30
|
-
assert_template opts[:template] if opts[:template]
|
|
31
|
-
end
|
|
32
|
-
|
|
33
|
-
def assert_response_redirect( opts = {} )
|
|
34
|
-
safe_assert_block "@response is nil" do
|
|
35
|
-
!@response.nil?
|
|
36
|
-
end
|
|
37
|
-
|
|
38
|
-
if @response.error? || @response.client_error?
|
|
39
|
-
puts @response.body
|
|
40
|
-
puts "Flash:" + @response.flash.map{|k,v| "#{k} : #{v}"}.join(', ')
|
|
41
|
-
debugger
|
|
42
|
-
nil
|
|
43
|
-
elsif @response.success?
|
|
44
|
-
puts "OOPS: should have redirected. Instead went to #{@response.template.action_name}, flash: #{@response.flash.inspect}"
|
|
45
|
-
end
|
|
46
|
-
|
|
47
|
-
assert_response :redirect
|
|
48
|
-
assert_redirected_to opts[:to] if opts[:to]
|
|
49
|
-
end
|
|
50
|
-
|
|
51
|
-
def assert_no_errors_on( record, message = "" )
|
|
52
|
-
record.valid?
|
|
53
|
-
message = build_message( message,
|
|
54
|
-
"#{record.class.name} record should have no errors. Errors: ?",
|
|
55
|
-
record.errors.map{ |k,v| "[#{k} : #{v}]"}.join(", ")
|
|
56
|
-
)
|
|
57
|
-
|
|
58
|
-
safe_assert_block message do
|
|
59
|
-
record.valid?
|
|
60
|
-
end
|
|
61
|
-
end
|
|
62
|
-
|
|
63
|
-
# TODO: Should be able to say which errors should be present
|
|
64
|
-
def assert_errors_on( record, message = "" )
|
|
65
|
-
message = build_message( message, "#{record.class.name} record should have errors.")
|
|
66
|
-
|
|
67
|
-
safe_assert_block message do
|
|
68
|
-
!record.valid?
|
|
69
|
-
end
|
|
70
|
-
end
|
|
71
|
-
|
|
72
|
-
def assert_an_error_on( record, _field, error_says = nil )
|
|
73
|
-
message = build_message( "", "<?> should have an error on the <?> field.", record, _field )
|
|
74
|
-
safe_assert_block message do
|
|
75
|
-
!record.errors[_field].blank?
|
|
76
|
-
end
|
|
77
|
-
|
|
78
|
-
unless error_says.blank?
|
|
79
|
-
message = build_message( "", "<?> should have an error on the <?> field that says <?>.", record, _field, error_says )
|
|
80
|
-
safe_assert_block message do
|
|
81
|
-
# puts "Inside field error block"
|
|
82
|
-
# debugger
|
|
83
|
-
record.errors[_field].include?(error_says)
|
|
84
|
-
end
|
|
85
|
-
end
|
|
86
|
-
end
|
|
87
|
-
|
|
88
|
-
def assert_record_destroyed( record, message = "")
|
|
89
|
-
not_record_message = build_message(message, "<?> is not an ActiveRecord::Base object.", record)
|
|
90
|
-
new_record_message = build_message(message, "<?> should not be a new record in order to use assert_destroy().", record)
|
|
91
|
-
full_message = build_message(message, "<?> should have been destroyed.", record)
|
|
92
|
-
|
|
93
|
-
safe_assert_block not_record_message do
|
|
94
|
-
record.is_a?(ActiveRecord::Base)
|
|
95
|
-
end
|
|
96
|
-
|
|
97
|
-
safe_assert_block new_record_message do
|
|
98
|
-
record.new_record? == false
|
|
99
|
-
end
|
|
100
|
-
|
|
101
|
-
safe_assert_block full_message do
|
|
102
|
-
record.class.find_by_id(record.id) == nil
|
|
103
|
-
end
|
|
104
|
-
end
|
|
105
|
-
end
|
|
106
|
-
end
|
|
107
|
-
end
|
|
108
|
-
end
|
|
@@ -1,109 +0,0 @@
|
|
|
1
|
-
module FunWith
|
|
2
|
-
module Testing
|
|
3
|
-
module Assertions
|
|
4
|
-
module FunWithFiles
|
|
5
|
-
def assert_fwf_filepath( file, message = "" )
|
|
6
|
-
message = build_message( message, "File <#{file}> should be a FunWith::Files::FilePath")
|
|
7
|
-
|
|
8
|
-
safe_assert_block message do
|
|
9
|
-
file.is_a?( FunWith::Files::FilePath )
|
|
10
|
-
end
|
|
11
|
-
end
|
|
12
|
-
|
|
13
|
-
def assert_file( file, message = "" )
|
|
14
|
-
assert_fwf_filepath( file, message )
|
|
15
|
-
|
|
16
|
-
message = build_message( message, "File should exist at <#{file}>." )
|
|
17
|
-
|
|
18
|
-
safe_assert_block message do
|
|
19
|
-
file.exist?
|
|
20
|
-
end
|
|
21
|
-
end
|
|
22
|
-
|
|
23
|
-
def assert_no_file( file, message = "" )
|
|
24
|
-
assert_fwf_filepath( file, message )
|
|
25
|
-
|
|
26
|
-
message = build_message( message, "No file/directory should exist at <#{file}>." )
|
|
27
|
-
|
|
28
|
-
safe_assert_block message do
|
|
29
|
-
! file.exist?
|
|
30
|
-
end
|
|
31
|
-
end
|
|
32
|
-
|
|
33
|
-
def assert_directory( file, message = "" )
|
|
34
|
-
assert_fwf_filepath( file, message )
|
|
35
|
-
|
|
36
|
-
message = build_message( message, "<#{file}> should be a directory." )
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
safe_assert_block message do
|
|
40
|
-
file.directory?
|
|
41
|
-
end
|
|
42
|
-
end
|
|
43
|
-
|
|
44
|
-
def assert_not_directory( file, message = "" )
|
|
45
|
-
assert_fwf_filepath( file, message )
|
|
46
|
-
|
|
47
|
-
message = build_message( message, "<#{file}> shouldn't be a directory." )
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
safe_assert_block message do
|
|
51
|
-
! file.directory?
|
|
52
|
-
end
|
|
53
|
-
end
|
|
54
|
-
|
|
55
|
-
def assert_empty_file( file, message = "" )
|
|
56
|
-
assert_fwf_filepath( file, message )
|
|
57
|
-
|
|
58
|
-
message = build_message( message, "Empty file should exist at <#{file}>." )
|
|
59
|
-
|
|
60
|
-
safe_assert_block message do
|
|
61
|
-
file.exist? && file.empty?
|
|
62
|
-
end
|
|
63
|
-
end
|
|
64
|
-
|
|
65
|
-
def assert_empty_directory( file, message = "" )
|
|
66
|
-
assert_fwf_filepath( file, message )
|
|
67
|
-
|
|
68
|
-
message = build_message( message, "Empty directory should exist at <#{file}>." )
|
|
69
|
-
|
|
70
|
-
safe_assert_block message do
|
|
71
|
-
file.directory? && file.empty?
|
|
72
|
-
end
|
|
73
|
-
end
|
|
74
|
-
|
|
75
|
-
def assert_file_has_content( file, message = "" )
|
|
76
|
-
assert_fwf_filepath( file, message )
|
|
77
|
-
|
|
78
|
-
message = build_message( message, "File should exist at <#{file}>, and have content." )
|
|
79
|
-
|
|
80
|
-
safe_assert_block message do
|
|
81
|
-
file.exist? && !file.empty?
|
|
82
|
-
end
|
|
83
|
-
end
|
|
84
|
-
|
|
85
|
-
alias :assert_file_not_empty :assert_file_has_content
|
|
86
|
-
|
|
87
|
-
def assert_file_contents( file, content, message = "" )
|
|
88
|
-
assert_file( file )
|
|
89
|
-
|
|
90
|
-
case content
|
|
91
|
-
when String
|
|
92
|
-
# message = build_message( message, "File <#{file}> contents should be #{content[0..99].inspect}#{'...(truncated)' if content.length > 100}" )
|
|
93
|
-
assert_equal( content, file.read, message )
|
|
94
|
-
when Regexp
|
|
95
|
-
assert_match( content, file.read, message)
|
|
96
|
-
end
|
|
97
|
-
end
|
|
98
|
-
|
|
99
|
-
# Actually, because FilePath responds to =~, assert_match may work for this
|
|
100
|
-
# def assert_file_content_matches( file, regex_or_string, times = nil, message = "" )
|
|
101
|
-
# if
|
|
102
|
-
# if times.nil?
|
|
103
|
-
#
|
|
104
|
-
# end
|
|
105
|
-
# end
|
|
106
|
-
end
|
|
107
|
-
end
|
|
108
|
-
end
|
|
109
|
-
end
|
data/test/test_test_mode.rb
DELETED
|
@@ -1,28 +0,0 @@
|
|
|
1
|
-
require 'helper'
|
|
2
|
-
|
|
3
|
-
module FunWith
|
|
4
|
-
module Testing
|
|
5
|
-
class TestTestMode < FunWith::Testing::MyTestCase
|
|
6
|
-
context "testing in_test_mode?" do
|
|
7
|
-
setup do
|
|
8
|
-
extended_test_case
|
|
9
|
-
@gem_to_test = Module.new
|
|
10
|
-
end
|
|
11
|
-
|
|
12
|
-
should "set into test mode by default" do
|
|
13
|
-
@case_class.set_test_mode
|
|
14
|
-
assert @case.in_test_mode?
|
|
15
|
-
end
|
|
16
|
-
|
|
17
|
-
should "explicitly set to false" do
|
|
18
|
-
@case_class.set_test_mode( false )
|
|
19
|
-
assert @case.in_test_mode? == false
|
|
20
|
-
end
|
|
21
|
-
|
|
22
|
-
should "return false when no gem is set" do
|
|
23
|
-
assert @case.in_test_mode? == false
|
|
24
|
-
end
|
|
25
|
-
end
|
|
26
|
-
end
|
|
27
|
-
end
|
|
28
|
-
end
|