spex 0.5.1 → 0.5.2
Sign up to get free protection for your applications and to get access to all the features.
- data/VERSION +1 -1
- data/lib/spex/assertion.rb +8 -0
- data/lib/spex/assertions/changed_group_assertion.rb +7 -0
- data/lib/spex/assertions/changed_mode_assertion.rb +5 -0
- data/lib/spex/assertions/changed_owner_assertion.rb +7 -0
- data/lib/spex/assertions/created_assertion.rb +4 -0
- data/lib/spex/assertions/modified_assertion.rb +6 -0
- data/lib/spex/assertions/removed_assertion.rb +7 -4
- data/lib/spex/cli.rb +29 -1
- metadata +2 -2
data/VERSION
CHANGED
@@ -1 +1 @@
|
|
1
|
-
0.5.
|
1
|
+
0.5.2
|
data/lib/spex/assertion.rb
CHANGED
@@ -6,6 +6,13 @@ module Spex
|
|
6
6
|
option :to, "To group name or gid"
|
7
7
|
option :from, "From group name or gid"
|
8
8
|
|
9
|
+
example "Changed the file group", "assert '/tmp/foo', :changed_group => true"
|
10
|
+
example "Did not change the file group", "assert '/tmp/foo', :changed_group => false"
|
11
|
+
example "Changed the file group from 'wheel' to 'www-users'", "assert '/tmp/foo', :changed_group => {:from => 'wheel', :to => 'www-users'}"
|
12
|
+
example "Changed the file group from gid 210 to gid 288", "assert '/tmp/foo', :changed_group => {:from => 210, :to => 288}"
|
13
|
+
example "Changed the file group to 'users'", "assert '/tmp/foo', :changed_group => {:to => 'users'}"
|
14
|
+
example "Changed the file group to gid 203", "assert '/tmp/foo', :changed_group => {:to => 203}"
|
15
|
+
|
9
16
|
def before
|
10
17
|
assert File.exist?(target), "File does not exist at #{target}"
|
11
18
|
if from_groupname
|
@@ -3,6 +3,11 @@ module Spex
|
|
3
3
|
as :changed_mode, "file mode change"
|
4
4
|
option :from, "Mode changed from (octal, eg 0600)"
|
5
5
|
option :to, "Mode changed to (octal, eg 0700)"
|
6
|
+
|
7
|
+
example "Changed the file mode", "assert '/tmp/foo', :changed_mode => true"
|
8
|
+
example "Did not change the file mode", "assert '/tmp/foo', :changed_mode => false"
|
9
|
+
example "Changed the file mode from 0666 to 0755", "assert '/tmp/foo', :changed_mode => {:from => 0666, :to => 0755}"
|
10
|
+
example "Changed the file mode to 0750", "assert '/tmp/foo', :changed_mode => {:to => 0750}"
|
6
11
|
|
7
12
|
def before
|
8
13
|
assert File.exist?(target), "File does not exist at #{target}"
|
@@ -5,6 +5,13 @@ module Spex
|
|
5
5
|
as :changed_owner, 'file owner change'
|
6
6
|
option :from, "From username or uid"
|
7
7
|
option :to, "To username or uid"
|
8
|
+
|
9
|
+
example "Changed the file owner", "assert '/tmp/foo', :changed_owner => true"
|
10
|
+
example "Did not change the file owner", "assert '/tmp/foo', :changed_owner => false"
|
11
|
+
example "Changed the file owner from 'root' to 'bruce'", "assert '/tmp/foo', :changed_owner => {:from => 'root', :to => 'bruce'}"
|
12
|
+
example "Changed the file owner from uid 501 to uid 503", "assert '/tmp/foo', :changed_owner => {:from => 501, :to => 503}"
|
13
|
+
example "Changed the file owner to 'jim'", "assert '/tmp/foo', :changed_owner => {:to => 'jim'}"
|
14
|
+
example "Changed the file owner to uid 506", "assert '/tmp/foo', :changed_owner => {:to => 506}"
|
8
15
|
|
9
16
|
def before
|
10
17
|
assert File.exist?(target), "File does not exist at #{target}"
|
@@ -2,6 +2,10 @@ module Spex
|
|
2
2
|
class CreatedAssertion < FileAssertion
|
3
3
|
as :created, 'file creation'
|
4
4
|
option :type, "Type ('file' or 'directory'), optional"
|
5
|
+
example "File was created", "assert '/tmp/foo', :created => true"
|
6
|
+
example "File was not created", "assert '/tmp/foo', :created => false"
|
7
|
+
example "Regular file was created", "assert '/tmp/foo', :created => {:type => 'file'}"
|
8
|
+
example "Directory was created", "assert '/tmp/foo', :created => {:type => 'directory'}"
|
5
9
|
|
6
10
|
def before
|
7
11
|
assert !File.exist?(target), "File already exists at #{target}"
|
@@ -9,6 +9,12 @@ module Spex
|
|
9
9
|
as :modified, 'file modification'
|
10
10
|
option :added, "Added content (string or regexp)"
|
11
11
|
option :removed, "Removed content (string or regexp)"
|
12
|
+
example "Modified a file", "assert '/tmp/foo', :modified => true"
|
13
|
+
example "Did not modify a file", "assert '/tmp/foo', :modified => false"
|
14
|
+
example "Added a line with 'a substring' in it", "assert '/tmp/foo', :modified => {:added => 'a substring'}"
|
15
|
+
example "Added a line matching /a substring pattern/", "assert '/tmp/foo', :modified => {:added => /a substring pattern/}"
|
16
|
+
example "Removed a line with 'a substring' in it", "assert '/tmp/foo', :modified => {:removed => 'a substring'}"
|
17
|
+
example "Removed a line matching /a substring pattern/", "assert '/tmp/foo', :modified => {:removed => /a substring pattern/}"
|
12
18
|
|
13
19
|
def prepare
|
14
20
|
track_checksum!
|
@@ -1,9 +1,12 @@
|
|
1
1
|
module Spex
|
2
|
-
class
|
3
|
-
as :
|
4
|
-
option :mode, "Mode, in octal (eg: 0600), optional"
|
2
|
+
class RemovedAssertion < FileAssertion
|
3
|
+
as :removed, 'file removal'
|
5
4
|
option :type, "Type (:file or :directory), optional"
|
6
|
-
|
5
|
+
example "File was removed", "assert '/tmp/foo', :removed => true"
|
6
|
+
example "File was not removed", "assert '/tmp/foo', :removed => false"
|
7
|
+
example "Regular file was removed", "assert '/tmp/foo', :removed => {:type => 'file'}"
|
8
|
+
example "Directory was removed", "assert '/tmp/foo', :removed => {:type => 'directory'}"
|
9
|
+
|
7
10
|
def before
|
8
11
|
assert File.exist?(target), "File does not exist at #{target}"
|
9
12
|
check_type
|
data/lib/spex/cli.rb
CHANGED
@@ -14,7 +14,7 @@ module Spex
|
|
14
14
|
|
15
15
|
def parser
|
16
16
|
@parser ||= OptionParser.new do |opts|
|
17
|
-
opts.banner =
|
17
|
+
opts.banner = "spex [OPTIONS] DEFINITION_FILE"
|
18
18
|
opts.separator "\nOPTIONS:"
|
19
19
|
opts.on_tail('--help', '-h', 'Show this message') do
|
20
20
|
puts opts
|
@@ -23,6 +23,10 @@ module Spex
|
|
23
23
|
opts.on('--describe', '-d', 'Describe DEFINITION_FILE') do
|
24
24
|
options.describe = true
|
25
25
|
end
|
26
|
+
opts.on('--assertions', '-a', "List supported assertions") do
|
27
|
+
display_assertions
|
28
|
+
exit
|
29
|
+
end
|
26
30
|
end
|
27
31
|
end
|
28
32
|
|
@@ -49,6 +53,30 @@ module Spex
|
|
49
53
|
end
|
50
54
|
end
|
51
55
|
|
56
|
+
def display_assertions
|
57
|
+
Assertion.registry.each_value do |klass|
|
58
|
+
line = "Assertion: :#{klass.name} (#{klass.description})"
|
59
|
+
puts line
|
60
|
+
if klass.options.any? || klass.examples.any?
|
61
|
+
puts('=' * line.size)
|
62
|
+
end
|
63
|
+
if klass.options.any?
|
64
|
+
puts "\nOptions\n-------\n\n"
|
65
|
+
klass.options.each do |key, value|
|
66
|
+
puts "* :#{key}, #{value.description}"
|
67
|
+
end
|
68
|
+
end
|
69
|
+
if klass.examples.any?
|
70
|
+
puts "\nExamples\n--------\n\n"
|
71
|
+
klass.examples.each do |description, example|
|
72
|
+
puts "#{description}:"
|
73
|
+
puts "\n #{example}\n\n"
|
74
|
+
end
|
75
|
+
end
|
76
|
+
puts
|
77
|
+
end
|
78
|
+
end
|
79
|
+
|
52
80
|
def describe(script)
|
53
81
|
script.scenarios.each do |scenario|
|
54
82
|
puts %(In scenario "#{scenario.name}")
|