approvals-approval_tests 0.0.4 → 0.0.5
Sign up to get free protection for your applications and to get access to all the features.
- data/lib/approval_tests/approvals.rb +25 -17
- data/lib/approval_tests/writers/xml_writer.rb +81 -0
- data/spec/approvals_lists_should_show_empty_lists.approved.txt +1 -0
- data/spec/approvals_lists_should_write_arrays.approved.txt +1 -0
- data/spec/approvals_lists_should_write_maps.approved.txt +1 -0
- data/spec/approvals_spec.rb +5 -0
- data/spec/approvals_xml_should_be_pretty.approved.txt +8 -0
- metadata +6 -2
- data/approval_tests.gemspec +0 -62
@@ -4,6 +4,7 @@ require "#{__DIR__}/namers/rspec_namer"
|
|
4
4
|
require "#{__DIR__}/approvers/file_approver"
|
5
5
|
require "#{__DIR__}/writers/text_writer"
|
6
6
|
require "#{__DIR__}/writers/html_writer"
|
7
|
+
require "#{__DIR__}/writers/xml_writer"
|
7
8
|
require "#{__DIR__}/reporters/quiet_reporter"
|
8
9
|
require "#{__DIR__}/reporters/text_mate_reporter"
|
9
10
|
require "#{__DIR__}/reporters/diff_reporter"
|
@@ -37,25 +38,32 @@ module ApprovalTests
|
|
37
38
|
end
|
38
39
|
approve(out)
|
39
40
|
end
|
40
|
-
def approve(data
|
41
|
-
|
42
|
-
|
43
|
-
|
44
|
-
|
45
|
-
|
46
|
-
|
47
|
-
|
48
|
-
|
49
|
-
|
50
|
-
|
51
|
-
|
52
|
-
|
53
|
-
|
54
|
-
|
41
|
+
def approve(data)
|
42
|
+
approve_with_writer(TextWriter.new(data))
|
43
|
+
end
|
44
|
+
|
45
|
+
def approve_html(data)
|
46
|
+
approve_with_writer(HtmlWriter.new(data))
|
47
|
+
end
|
48
|
+
|
49
|
+
def approve_xml(data)
|
50
|
+
approve_with_writer(TextWriter.new(XmlWriter.pretty_xml(data)))
|
51
|
+
end
|
52
|
+
|
53
|
+
def approve_with_writer(writer)
|
54
|
+
approver = FileApprover.new(writer, @namer)
|
55
|
+
if approver.approve()
|
56
|
+
approver.clean_up_after_success()
|
55
57
|
else
|
56
|
-
|
58
|
+
@reporter = get_default_reporter()
|
59
|
+
approver.report_failure(@reporter)
|
60
|
+
|
61
|
+
if @reporter.approved_when_reported()
|
62
|
+
approver.clean_up_after_sucess()
|
63
|
+
else
|
64
|
+
approver.fail()
|
65
|
+
end
|
57
66
|
end
|
58
|
-
end
|
59
67
|
end
|
60
68
|
|
61
69
|
def namer=(namer)
|
@@ -0,0 +1,81 @@
|
|
1
|
+
require 'rexml/document'
|
2
|
+
include REXML
|
3
|
+
|
4
|
+
module ApprovalTests
|
5
|
+
module Writers
|
6
|
+
class XmlWriter
|
7
|
+
def initialize(data)
|
8
|
+
@data = data
|
9
|
+
end
|
10
|
+
|
11
|
+
def get_approval_filename(basename)
|
12
|
+
basename + ".approved.xml"
|
13
|
+
end
|
14
|
+
|
15
|
+
def get_received_filename(basename)
|
16
|
+
basename + ".received.xml"
|
17
|
+
end
|
18
|
+
|
19
|
+
def write_received_file(received)
|
20
|
+
f = File.new("#{received}", "w+")
|
21
|
+
f.write(@data)
|
22
|
+
f.close()
|
23
|
+
f.path
|
24
|
+
end
|
25
|
+
class << self
|
26
|
+
def pretty_print(parent_node, itab)
|
27
|
+
buffer = ''
|
28
|
+
|
29
|
+
parent_node.elements.each do |node|
|
30
|
+
|
31
|
+
buffer += ' ' * itab + "<#{node.name}#{get_att_list(node)}"
|
32
|
+
|
33
|
+
if node.to_a.length > 0
|
34
|
+
buffer += ">"
|
35
|
+
if node.text.nil?
|
36
|
+
buffer += "\n"
|
37
|
+
buffer += pretty_print(node,itab+2)
|
38
|
+
buffer += ' ' * itab + "</#{node.name}>\n"
|
39
|
+
else
|
40
|
+
node_text = node.text.strip
|
41
|
+
if node_text != ''
|
42
|
+
buffer += node_text
|
43
|
+
buffer += "</#{node.name}>\n"
|
44
|
+
else
|
45
|
+
buffer += "\n" + pretty_print(node,itab+2)
|
46
|
+
buffer += ' ' * itab + "</#{node.name}>\n"
|
47
|
+
end
|
48
|
+
end
|
49
|
+
else
|
50
|
+
buffer += "/>\n"
|
51
|
+
end
|
52
|
+
|
53
|
+
end
|
54
|
+
buffer
|
55
|
+
end
|
56
|
+
|
57
|
+
def get_att_list(node)
|
58
|
+
att_list = ''
|
59
|
+
node.attributes.each { |attribute, val| att_list += " #{attribute}='#{val}'" }
|
60
|
+
att_list
|
61
|
+
end
|
62
|
+
|
63
|
+
def pretty_xml(xml_string)
|
64
|
+
doc = Document.new(xml_string)
|
65
|
+
|
66
|
+
buffer = ''
|
67
|
+
xml_declaration = doc.to_s.match('<\?.*\?>').to_s
|
68
|
+
buffer += "#{xml_declaration}\n" if not xml_declaration.nil?
|
69
|
+
xml_doctype = doc.to_s.match('<\!.*\">').to_s
|
70
|
+
buffer += "#{xml_doctype}\n" if not xml_doctype.nil?
|
71
|
+
buffer += "<#{doc.root.name}#{get_att_list(doc.root)}"
|
72
|
+
if doc.root.to_a.length > 0
|
73
|
+
buffer +=">\n#{pretty_print(doc.root,2)}</#{doc.root.name}>"
|
74
|
+
else
|
75
|
+
buffer += "/>\n"
|
76
|
+
end
|
77
|
+
end
|
78
|
+
end
|
79
|
+
end
|
80
|
+
end
|
81
|
+
end
|
@@ -0,0 +1 @@
|
|
1
|
+
tv.count = 0
|
@@ -0,0 +1 @@
|
|
1
|
+
name[0] = tom
|
@@ -0,0 +1 @@
|
|
1
|
+
[name] = harry
|
data/spec/approvals_spec.rb
CHANGED
@@ -45,6 +45,11 @@ describe "Approvals" do
|
|
45
45
|
end
|
46
46
|
end
|
47
47
|
|
48
|
+
describe "xml" do
|
49
|
+
it "should be pretty" do
|
50
|
+
Approvals.approve_xml('<?xml version="1.0" encoding="ISO-8859-1"?><data><a><b>Bee</b><c>Sea</c></a></data>')
|
51
|
+
end
|
52
|
+
end
|
48
53
|
|
49
54
|
describe "DiffReporter" do
|
50
55
|
it "should launch" do
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: approvals-approval_tests
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.0.
|
4
|
+
version: 0.0.5
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Dan Gilkerson, Llewellyn Falco
|
@@ -25,7 +25,6 @@ files:
|
|
25
25
|
- README
|
26
26
|
- Rakefile
|
27
27
|
- VERSION
|
28
|
-
- approval_tests.gemspec
|
29
28
|
- lib/approval_tests.rb
|
30
29
|
- lib/approval_tests/approvals.rb
|
31
30
|
- lib/approval_tests/approvers/file_approver.rb
|
@@ -36,13 +35,18 @@ files:
|
|
36
35
|
- lib/approval_tests/reporters/text_mate_reporter.rb
|
37
36
|
- lib/approval_tests/writers/html_writer.rb
|
38
37
|
- lib/approval_tests/writers/text_writer.rb
|
38
|
+
- lib/approval_tests/writers/xml_writer.rb
|
39
39
|
- spec/a.txt
|
40
|
+
- spec/approvals_lists_should_show_empty_lists.approved.txt
|
41
|
+
- spec/approvals_lists_should_write_arrays.approved.txt
|
42
|
+
- spec/approvals_lists_should_write_maps.approved.txt
|
40
43
|
- spec/approvals_multiple_describes_should_approve_multiple_describes.approved.txt
|
41
44
|
- spec/approvals_should_approve_shared_behaviors.approved.txt
|
42
45
|
- spec/approvals_should_successfully_approve_text.approved.txt
|
43
46
|
- spec/approvals_spec.rb
|
44
47
|
- spec/approvals_using_approval_blocks.approved.txt
|
45
48
|
- spec/approvals_using_approval_blocks_the_last_statement.approved.txt
|
49
|
+
- spec/approvals_xml_should_be_pretty.approved.txt
|
46
50
|
- spec/b.txt
|
47
51
|
- spec/cleanup_reporter.rb
|
48
52
|
- spec/spec.opts
|
data/approval_tests.gemspec
DELETED
@@ -1,62 +0,0 @@
|
|
1
|
-
# -*- encoding: utf-8 -*-
|
2
|
-
|
3
|
-
Gem::Specification.new do |s|
|
4
|
-
s.name = %q{approval_tests}
|
5
|
-
s.version = "0.0.4"
|
6
|
-
|
7
|
-
s.required_rubygems_version = Gem::Requirement.new(">= 0") if s.respond_to? :required_rubygems_version=
|
8
|
-
s.authors = ["Dan Gilkerson, Llewellyn Falco"]
|
9
|
-
s.date = %q{2009-07-02}
|
10
|
-
s.description = %q{Approval testing library}
|
11
|
-
s.email = %q{approvaltests@dangilkerson.com}
|
12
|
-
s.extra_rdoc_files = [
|
13
|
-
"README"
|
14
|
-
]
|
15
|
-
s.files = [
|
16
|
-
"README",
|
17
|
-
"Rakefile",
|
18
|
-
"VERSION",
|
19
|
-
"approval_tests.gemspec",
|
20
|
-
"lib/approval_tests.rb",
|
21
|
-
"lib/approval_tests/approvals.rb",
|
22
|
-
"lib/approval_tests/approvers/file_approver.rb",
|
23
|
-
"lib/approval_tests/extensions/rspec.rb",
|
24
|
-
"lib/approval_tests/namers/rspec_namer.rb",
|
25
|
-
"lib/approval_tests/reporters/diff_reporter.rb",
|
26
|
-
"lib/approval_tests/reporters/quiet_reporter.rb",
|
27
|
-
"lib/approval_tests/reporters/text_mate_reporter.rb",
|
28
|
-
"lib/approval_tests/writers/html_writer.rb",
|
29
|
-
"lib/approval_tests/writers/text_writer.rb",
|
30
|
-
"spec/a.txt",
|
31
|
-
"spec/approvals_multiple_describes_should_approve_multiple_describes.approved.txt",
|
32
|
-
"spec/approvals_should_approve_shared_behaviors.approved.txt",
|
33
|
-
"spec/approvals_should_successfully_approve_text.approved.txt",
|
34
|
-
"spec/approvals_spec.rb",
|
35
|
-
"spec/approvals_using_approval_blocks.approved.txt",
|
36
|
-
"spec/approvals_using_approval_blocks_the_last_statement.approved.txt",
|
37
|
-
"spec/b.txt",
|
38
|
-
"spec/cleanup_reporter.rb",
|
39
|
-
"spec/spec.opts",
|
40
|
-
"spec/spec_helper.rb"
|
41
|
-
]
|
42
|
-
s.homepage = %q{http://github.com/approvaltests/approval_tests}
|
43
|
-
s.rdoc_options = ["--charset=UTF-8"]
|
44
|
-
s.require_paths = ["lib"]
|
45
|
-
s.rubygems_version = %q{1.3.4}
|
46
|
-
s.summary = %q{Approval testing library}
|
47
|
-
s.test_files = [
|
48
|
-
"spec/approvals_spec.rb",
|
49
|
-
"spec/cleanup_reporter.rb",
|
50
|
-
"spec/spec_helper.rb"
|
51
|
-
]
|
52
|
-
|
53
|
-
if s.respond_to? :specification_version then
|
54
|
-
current_version = Gem::Specification::CURRENT_SPECIFICATION_VERSION
|
55
|
-
s.specification_version = 3
|
56
|
-
|
57
|
-
if Gem::Version.new(Gem::RubyGemsVersion) >= Gem::Version.new('1.2.0') then
|
58
|
-
else
|
59
|
-
end
|
60
|
-
else
|
61
|
-
end
|
62
|
-
end
|