livetext 0.9.14 → 0.9.20
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/README.lt3 +2 -2
- data/imports/bookish.rb +288 -0
- data/imports/calibre.rb +28 -0
- data/imports/livemagick.rb +133 -0
- data/imports/markdown.rb +44 -0
- data/imports/markdown_importable.rb +46 -0
- data/imports/pyggish.rb +204 -0
- data/imports/tutorial.rb +95 -0
- data/lib/cmdargs.rb +93 -0
- data/lib/formatline.rb +56 -83
- data/lib/handler/icanhaz.rb +35 -0
- data/lib/handler.rb +1 -0
- data/lib/helpers.rb +173 -4
- data/lib/livetext.rb +16 -141
- data/lib/parser/file.rb +8 -0
- data/lib/parser/import.rb +1 -3
- data/lib/parser/mixin.rb +22 -24
- data/lib/parser/set.rb +35 -26
- data/lib/parser/string.rb +19 -4
- data/lib/processor.rb +1 -4
- data/lib/standard.rb +68 -97
- data/lib/userapi.rb +1 -0
- data/livetext.gemspec +2 -1
- data/plugin/bookish.rb +26 -22
- data/plugin/calibre.rb +1 -1
- data/plugin/livemagick.rb +10 -10
- data/plugin/markdown.rb +13 -11
- data/plugin/pyggish.rb +94 -84
- data/plugin/tutorial.rb +10 -5
- data/test/all.rb +0 -1
- data/test/snapshots/OMIT.txt +9 -8
- data/test/snapshots/clusion.txt +84 -0
- data/test/snapshots/error_inc_line_num/match-error.txt +1 -1
- data/test/snapshots/error_invalid_name/match-error.txt +1 -1
- data/test/snapshots/error_line_num/match-error.txt +1 -1
- data/test/snapshots/error_mismatched_end/match-error.txt +1 -1
- data/test/snapshots/error_missing_end/match-error.txt +1 -1
- data/test/snapshots/error_no_such_copy/match-error.txt +1 -1
- data/test/snapshots/error_no_such_copy/source.lt3 +0 -1
- data/test/snapshots/error_no_such_inc/match-error.txt +1 -1
- data/test/snapshots/icanhaz/expected-output.txt +5 -0
- data/test/snapshots/icanhaz/match-error.txt +1 -0
- data/test/snapshots/icanhaz/simple_import.rb +5 -0
- data/test/snapshots/icanhaz/source.lt3 +10 -0
- data/test/snapshots/icanhaz2/expected-error.txt +0 -0
- data/test/snapshots/icanhaz2/expected-output.txt +6 -0
- data/test/snapshots/icanhaz2/simple_canhaz.rb +5 -0
- data/test/snapshots/icanhaz2/source.lt3 +6 -0
- data/test/snapshots/simple_import/expected-error.txt +0 -0
- data/test/snapshots/simple_import/expected-output.txt +7 -0
- data/test/snapshots/simple_import/simple_import.rb +5 -0
- data/test/snapshots/simple_import/source.lt3 +7 -0
- data/test/snapshots/simple_include/source.lt3 +0 -1
- data/test/snapshots.rb +85 -37
- data/test/unit/all.rb +1 -0
- data/test/unit/formatline.rb +650 -0
- data/test/unit/parser/importable.rb +1 -1
- data/test/unit/parser/mixin.rb +1 -1
- data/test/unit/parser/set.rb +19 -12
- data/test/unit/parser/string.rb +14 -14
- metadata +27 -5
- data/test/formatting-tests.rb +0 -35
- data/test/formatting.rb +0 -103
- data/test/snapshots/formatting-tests.txt +0 -124
data/test/snapshots.rb
CHANGED
@@ -43,6 +43,70 @@ class TestingLivetext < MiniTest::Test
|
|
43
43
|
EXP_OUT, EXP_ERR = "expected-output.txt", "expected-error.txt"
|
44
44
|
MATCH_OUT, MATCH_ERR = "match-output.txt", "match-error.txt"
|
45
45
|
|
46
|
+
TTY = File.open("/dev/tty","w")
|
47
|
+
|
48
|
+
def self.get_dir # FIXME - uh what?
|
49
|
+
cmdline = ARGV.first == "cmdline" # FIXME remove??
|
50
|
+
if cmdline
|
51
|
+
dir = "../"
|
52
|
+
Dir.chdir `livetext --path`.chomp.chomp
|
53
|
+
else
|
54
|
+
dir = ""
|
55
|
+
end
|
56
|
+
end
|
57
|
+
|
58
|
+
args = ARGV - ["cmdline"]
|
59
|
+
|
60
|
+
dir = self.get_dir
|
61
|
+
|
62
|
+
Data = "#{dir}test/snapshots"
|
63
|
+
Dir.chdir(Data)
|
64
|
+
|
65
|
+
TestDirs = Dir.entries(".").reject {|fname| ! File.directory?(fname) } - %w[. ..]
|
66
|
+
|
67
|
+
|
68
|
+
def self.filter # TODO move subset/omit logic here??
|
69
|
+
puts "Data = #{Data}"
|
70
|
+
all = Dir.entries(Data).reject {|fname| ! File.directory?(fname) } - %w[. ..]
|
71
|
+
included, excluded = [], []
|
72
|
+
@iflag, @eflag = true, false # defaults to INCLUDE
|
73
|
+
control = File.new("clusion.txt")
|
74
|
+
control.each_line do |line|
|
75
|
+
line.sub!(/#.*/, "")
|
76
|
+
line.strip!
|
77
|
+
lower = line.downcase
|
78
|
+
dejavu = false
|
79
|
+
case
|
80
|
+
when lower.empty?
|
81
|
+
# ignore
|
82
|
+
when lower == "default include all"
|
83
|
+
raise "Only one 'default' allowed" if dejavu
|
84
|
+
@iflag, @eflag = true, false # defaults to INCLUDE
|
85
|
+
dejavu = true
|
86
|
+
when lower == "default exclude all"
|
87
|
+
raise "Only one 'default' allowed" if dejavu
|
88
|
+
@iflag, @eflag = false, true
|
89
|
+
dejavu = true
|
90
|
+
when lower == "quit"
|
91
|
+
break
|
92
|
+
when lower[0] == "i"
|
93
|
+
TTY.puts "Warning: Can't include with 'i' when that is default" if @iflag
|
94
|
+
included << line.split(" ", 2)[1] # add to included
|
95
|
+
when lower[0] == "x"
|
96
|
+
TTY.puts "Warning: Can't exclude with 'x' when that is default" if @eflag
|
97
|
+
excluded << line.split(" ", 2)[1] # add to excluded
|
98
|
+
# add to excluded
|
99
|
+
end
|
100
|
+
[included, excluded]
|
101
|
+
end
|
102
|
+
end
|
103
|
+
|
104
|
+
i, e = self.filter
|
105
|
+
p i
|
106
|
+
p e
|
107
|
+
|
108
|
+
exit
|
109
|
+
|
46
110
|
def initialize(base, assertion = nil)
|
47
111
|
@assertion = assertion
|
48
112
|
@base = base
|
@@ -53,7 +117,8 @@ class TestingLivetext < MiniTest::Test
|
|
53
117
|
@match_out = File.exist?(MATCH_OUT)
|
54
118
|
@match_err = File.exist?(MATCH_ERR)
|
55
119
|
end
|
56
|
-
bad_files = (@literal_out && @match_out) || (@literal_err && @match_err)
|
120
|
+
bad_files = (@literal_out && @match_out) || (@literal_err && @match_err) ||
|
121
|
+
(! @literal_out && ! @match_out)
|
57
122
|
raise "Inconsistent structure for #@base" if bad_files
|
58
123
|
end
|
59
124
|
|
@@ -108,56 +173,39 @@ class TestingLivetext < MiniTest::Test
|
|
108
173
|
system("rm -f #{ACTUAL_OUT} #{ACTUAL_ERR} *sdiff.txt")
|
109
174
|
end
|
110
175
|
|
111
|
-
def filter # TODO move subset/omit logic here??
|
112
|
-
end
|
113
|
-
|
114
176
|
def run
|
115
177
|
@errors = false # oops, need to reset
|
116
178
|
Dir.chdir(@base) do
|
117
179
|
cmd = "../../../bin/livetext #{SOURCE} >#{ACTUAL_OUT} 2>#{ACTUAL_ERR}"
|
118
180
|
system(cmd)
|
119
|
-
check_stdout
|
120
181
|
check_stderr
|
182
|
+
check_stdout
|
121
183
|
cleanup
|
122
184
|
end
|
123
185
|
end
|
124
186
|
end
|
125
187
|
|
126
|
-
|
127
|
-
|
128
|
-
|
129
|
-
|
130
|
-
|
131
|
-
|
188
|
+
if args.empty?
|
189
|
+
selected = File.readlines("subset.txt").map(&:chomp)
|
190
|
+
omitfile = "OMIT.txt"
|
191
|
+
omitted = File.readlines(omitfile).map(&:chomp)
|
192
|
+
omitted.reject! {|line| line.start_with?("#") }
|
193
|
+
omit_names = omitted.map {|line| line.split.first }
|
194
|
+
STDERR.puts
|
195
|
+
STDERR.puts " >>> Warning: Omitting #{omitted.size} snapshot tests:\n "
|
196
|
+
indented = " "*7
|
197
|
+
omitted.each do |line|
|
198
|
+
STDERR.print indented
|
199
|
+
name, info = line.split(" ", 2)
|
200
|
+
STDERR.printf "%-20s %s\n", name, info
|
201
|
+
end
|
202
|
+
STDERR.puts
|
203
|
+
wanted = selected.empty? ? TestDirs : selected
|
204
|
+
Subset = wanted - omit_names
|
132
205
|
else
|
133
|
-
|
206
|
+
Subset = args
|
134
207
|
end
|
135
208
|
|
136
|
-
Data = "#{dir}test/snapshots"
|
137
|
-
Dir.chdir(Data)
|
138
|
-
|
139
|
-
TestDirs = Dir.entries(".").reject {|fname| ! File.directory?(fname) } - %w[. ..]
|
140
|
-
|
141
|
-
selected = File.readlines("subset.txt").map(&:chomp)
|
142
|
-
|
143
|
-
omitfile = "OMIT.txt"
|
144
|
-
omitted = File.readlines(omitfile).map(&:chomp)
|
145
|
-
omitted.reject! {|line| line.start_with?("#") }
|
146
|
-
omit_names = omitted.map {|line| line.split.first }
|
147
|
-
STDERR.puts
|
148
|
-
STDERR.puts " >>> Warning: Omitting #{omitted.size} snapshot tests:\n "
|
149
|
-
indented = " "*7
|
150
|
-
omitted.each do |line|
|
151
|
-
STDERR.print indented
|
152
|
-
name, info = line.split(" ", 2)
|
153
|
-
STDERR.printf "%-20s %s\n", name, info
|
154
|
-
end
|
155
|
-
STDERR.puts
|
156
|
-
|
157
|
-
wanted = selected.empty? ? TestDirs : selected
|
158
|
-
|
159
|
-
Subset = wanted - omit_names
|
160
|
-
|
161
209
|
Subset.each do |tdir|
|
162
210
|
define_method("test_#{tdir}") do
|
163
211
|
myproc = Proc.new {|bool, info| assert bool, info }
|
data/test/unit/all.rb
CHANGED