rubyuw 0.99.5 → 0.99.6

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.
data/VERSION CHANGED
@@ -1 +1 @@
1
- 0.99.5
1
+ 0.99.6
@@ -121,7 +121,7 @@ module RubyUW
121
121
 
122
122
  # Ugly regex to match the <pre> text to extract the proper information for the
123
123
  # course.
124
- raise Errors::CourseListingMatchError.new(pre_text) unless pre_text =~ /^((IS\s+)|(Restr\s+))?>?([0-9]+)\s([A-Z]{1,2})\s(.+?)\s(.+)/i #\s(([A-Z]+)\s(.+?))\s(([A-Z]+)\s([0-9]+))/i
124
+ raise Errors::CourseListingMatchError.new(pre_text) unless pre_text =~ /^((IS\s+)|(Restr\s+))?>?([0-9]+)\s([A-Z0-9]{1,2})\s(.+?)\s(.+)/i #\s(([A-Z]+)\s(.+?))\s(([A-Z]+)\s([0-9]+))/i
125
125
 
126
126
  {
127
127
  :sln => $4.to_s,
data/rubyuw.gemspec CHANGED
@@ -5,7 +5,7 @@
5
5
 
6
6
  Gem::Specification.new do |s|
7
7
  s.name = %q{rubyuw}
8
- s.version = "0.99.5"
8
+ s.version = "0.99.6"
9
9
 
10
10
  s.required_rubygems_version = Gem::Requirement.new(">= 0") if s.respond_to? :required_rubygems_version=
11
11
  s.authors = ["Mitchell Hashimoto"]
@@ -40,6 +40,7 @@ Gem::Specification.new do |s|
40
40
  "test/mocked/errors_test.rb",
41
41
  "test/mocked/fixture_pages/bad_request.html",
42
42
  "test/mocked/fixture_pages/curric_courses.html",
43
+ "test/mocked/fixture_pages/curric_edge_win2010_engl.html",
43
44
  "test/mocked/fixture_pages/curric_no_courses.html",
44
45
  "test/mocked/fixture_pages/curric_no_curric_found.html",
45
46
  "test/mocked/fixture_pages/logged_in_relay.html",
@@ -260,5 +260,36 @@ class CurriculumTest < Test::Unit::TestCase
260
260
  }
261
261
  end
262
262
  end
263
+
264
+ # Basically the "edge cases" are added to whenever a CourseListingMatchError is
265
+ # experienced in the real world
266
+ context "extracting a course listing edge cases" do
267
+ context "WIN2010 13066" do
268
+ setup do
269
+ @page = RubyUW::Base.connection.get(path_to_html("curric_edge_win2010_engl"))
270
+
271
+ @listing = {
272
+ :sln => "13066",
273
+ :section => "A2"
274
+ }
275
+ end
276
+
277
+ should "properly parse the entire curriculum" do
278
+ assert_nothing_raised {
279
+ RubyUW::Curriculum.extract_courses(@page)
280
+ }
281
+ end
282
+
283
+ should "properly parse the edge listing" do
284
+ related = RubyUW::Curriculum.extract_courses(@page)
285
+ sln_obj = related.values.flatten.detect { |course| course[:sln] == @listing[:sln] }
286
+
287
+ assert sln_obj
288
+ @listing.each do |k,v|
289
+ assert_equal v, sln_obj[k]
290
+ end
291
+ end
292
+ end
293
+ end
263
294
  end
264
295
  end