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

32 views
Skip to first unread message

Andy Koch

unread,
Nov 21, 2009, 12:34:15 PM11/21/09
to rspec...@rubyforge.org
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@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...@rubyforge.org
http://rubyforge.org/mailman/listinfo/rspec-users

Craig Demyanovich

unread,
Nov 21, 2009, 1:00:16 PM11/21/09
to rspec-users
Hi Andy,

Nothing jumps out at me at the moment. If you think there might be a difference between dev and test, you could launch script/console with the test env. and try it again on the console.

$ script/console test


Regards,
Craig


--
Craig Demyanovich
Mutually Human Software
http://mutuallyhuman.com

Andy Koch

unread,
Nov 21, 2009, 12:55:42 PM11/21/09
to rspec...@rubyforge.org
wait, nevermind

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

all's well

> rspec-us...@rubyforge.orghttp://rubyforge.org/mailman/listinfo/rspec-users

Reply all
Reply to author
Forward
0 new messages