[rspec-users] [rails] strange regex validation failure

Andy Koch andy.koch at pc-doctor.com
Sat Nov 21 12:55:42 EST 2009


wait, nevermind

turns out there was a callback that was being hidden - and triggering
a different error

all's well

On Nov 21, 9:34 am, Andy Koch <andy.k... at pc-doctor.com> wrote:
> Hi,
>
> I'm getting invalid results when testing a Regex in a format
> validation on a Rails model.
>
> Code is...
>
> # in Model
> # allow '- n/a -' or alphanum with _ -- no spaces
> validates_format_of :test_name, :with => /\A[A-Za-z0-9_]+\z/, :unless
> => lambda{|x| x.test_name == '- n/a -'}
>
> # in spec
> hardware_test = Factory.build(:hardware_test, :test_name => '- n/a -')
> hardware_test.should be_valid, "'#{hardware_test.test_name}' - should
> be valid"
>
> # spec result
> 3)
> 'HardwareTest should properly validate test_name format' FAILED
> '- n/a -' - should be valid
> ./spec/models/hardware_test_spec.rb:34:
>
> # finally, from console
> andy at hst-26-147 (Rails234)->sc
> Loading development environment (Rails 2.3.4)>> a = HardwareTest.new(:test_name => '- n/a -')
>
> => #<HardwareTest id: nil, test_name: "- n/a -", code_module_id: nil,
> test_description: nil, test_reviewed: false, interactive: false,
> loopback: false, factory: false, media: false, test_category_id: nil,
> created_at: nil, updated_at: nil, creator_id: nil, updater_id: nil>>> a.valid?
>
> => true
>
> Granted the console is in dev, not test, but I still don't get it.
> Literally pulled on my hair on this one.  I've tried altering the
> Regex many times - adding the :unless => lambda was my last effort.
>
> I can't see how this isn't passing.
>
> Thanks for any help
> _______________________________________________
> rspec-users mailing list
> rspec-us... at rubyforge.orghttp://rubyforge.org/mailman/listinfo/rspec-users


More information about the rspec-users mailing list