Hi guys. Occasionally, I''ll want to kill a long spec process that''s running. Usually I hit CTRL+c to kill a running process, but doing that for a running spec just causes "^C" to be printed to the terminal, and whichever spec example was running to fail. I''ve also tried using /bin/kill to kill the spec process, but that just causes whichever spec example was running to catch a SignalException, and fail. Any suggestions for how to do this? Thanks, Nick
I just hold ctl+c until it quits out. Pat On 11/16/08, Nick Hoffman <nick at deadorange.com> wrote:> Hi guys. Occasionally, I''ll want to kill a long spec process that''s > running. Usually I hit CTRL+c to kill a running process, but doing > that for a running spec just causes "^C" to be printed to the > terminal, and whichever spec example was running to fail. > > I''ve also tried using /bin/kill to kill the spec process, but that > just causes whichever spec example was running to catch a > SignalException, and fail. > > Any suggestions for how to do this? Thanks, > Nick > _______________________________________________ > rspec-users mailing list > rspec-users at rubyforge.org > http://rubyforge.org/mailman/listinfo/rspec-users >
On 2008-11-16, at 15:21, Pat Maddox wrote:> I just hold ctl+c until it quits out. > > PatHahha, brute force it, eh?
On Nov 16, 2008, at 2:40 PM, Nick Hoffman wrote:> Hi guys. Occasionally, I''ll want to kill a long spec process that''s > running. Usually I hit CTRL+c to kill a running process, but doing > that for a running spec just causes "^C" to be printed to the > terminal, and whichever spec example was running to fail. > > I''ve also tried using /bin/kill to kill the spec process, but that > just causes whichever spec example was running to catch a > SignalException, and fail.What signal are you sending? Is it a kill -9 (a KILL, a TERM, ...?)? Scott
Hello, I''m specing a controller, but having trouble getting my head around what I''ve created. I''m specing a products controller for an admin user. Two before filters check the user is logged in and authorized. A logged-in user only has admin privileges within her own subdomain. So, sarah, when logged in can only administer products at sarah.mysite.com/admin/products. Since there are two account types that require authentication (supplier and customer), the user model is polymorphic: class User belongs_to :allowable, :polymorphic => true ... end class Supplier has_many :users, :as => :allowable end class Customer has_one :user, :as => :allowable end A supplier has their own subdmain (sarah.mysite.com) and a customer has a profile page at mysite.com/people/joe. When sarah is logged-in, I check she has permission to edit content at sarah.mysite.com with: def authorized_resource?(resource) current_user.allowable == resource end ''resource'' being a supplier or customer object. My mind is failing me trying to describe Admin::ProductsController: http://pastie.org/316414 Both examples pass, but I''m not sure I understand exactly what I''m doing. In particular, can I make: it "should send unauthorized user to home page" do controller.should_receive(:authorized_resource?).and_return false do_get response.should redirect_to(home_path) end pass without stubbing the false return. How can I set up the mock instances, so that the controller method ''authorized_resource?'' actually returns a false method. Any guidance would be much appreciated. many thanks Omar
On Sun, Nov 16, 2008 at 5:53 PM, Sahyoun <osahyoun at gmail.com> wrote:> Hello, > > I''m specing a controller, but having trouble getting my head around what > I''ve created. > > I''m specing a products controller for an admin user. Two before filters > check the user is logged in and authorized. > A logged-in user only has admin privileges within her own subdomain. So, > sarah, when logged in > can only administer products at sarah.mysite.com/admin/products. > > Since there are two account types that require authentication (supplier and > customer), > the user model is polymorphic: > > class User > belongs_to :allowable, :polymorphic => true > ... > end > > class Supplier > has_many :users, :as => :allowable > end > > > class Customer > has_one :user, :as => :allowable > end > > A supplier has their own subdmain (sarah.mysite.com) and a customer has a > profile page at mysite.com/people/joe. > > When sarah is logged-in, I check she has permission to edit content at > sarah.mysite.com with: > > def authorized_resource?(resource) > current_user.allowable == resource > endI would probably change this method so you are pushing the responsibility onto your user. For example, I might change the authorized_resourced method to look like: def authorized_resource?(resource) current_user.can_access?(resource) end Now in your example you can stub/expect the interaction with the user object. Pushing this decision for who can access what really should stay out of your controller. Even though the authorization check is quite simple right now (ie: user.allowable == resource) this puts more logic in your controller, makes it slightly harder to test and also re-use. Hope this helps, Zach> > ''resource'' being a supplier or customer object. > > My mind is failing me trying to describe Admin::ProductsController: > > http://pastie.org/316414 > > Both examples pass, but I''m not sure I understand exactly what I''m doing. In > particular, can I make: > > it "should send unauthorized user to home page" do > controller.should_receive(:authorized_resource?).and_return false > do_get > response.should redirect_to(home_path) > end > > > pass without stubbing the false return. How can I set up the mock instances, > so that the controller method > ''authorized_resource?'' actually returns a false method. Any guidance would > be much appreciated. > > many thanks > > Omar > > > _______________________________________________ > rspec-users mailing list > rspec-users at rubyforge.org > http://rubyforge.org/mailman/listinfo/rspec-users >-- Zach Dennis http://www.continuousthinking.com http://www.mutuallyhuman.com
On 2008-11-16, at 17:46, Scott Taylor wrote:> On Nov 16, 2008, at 2:40 PM, Nick Hoffman wrote: >> Hi guys. Occasionally, I''ll want to kill a long spec process that''s >> running. Usually I hit CTRL+c to kill a running process, but doing >> that for a running spec just causes "^C" to be printed to the >> terminal, and whichever spec example was running to fail. >> >> I''ve also tried using /bin/kill to kill the spec process, but that >> just causes whichever spec example was running to catch a >> SignalException, and fail. > > What signal are you sending? Is it a kill -9 (a KILL, a TERM, ...?)? > > ScottI''ve just been running it as ``kill 12345''''. I stay away from -9, as it''s a pretty harsh thing to do. I haven''t tried other signals though, so I should give them a whirl and report back if any of them succeed in killing the entire spec process. -Nick
Thanks Zach, Your suggestion has put me back on track. Cheers, Omar On 17 Nov 2008, at 00:13, Zach Dennis wrote:> On Sun, Nov 16, 2008 at 5:53 PM, Sahyoun <osahyoun at gmail.com> wrote: >> Hello, >> >> I''m specing a controller, but having trouble getting my head around >> what >> I''ve created. >> >> I''m specing a products controller for an admin user. Two before >> filters >> check the user is logged in and authorized. >> A logged-in user only has admin privileges within her own >> subdomain. So, >> sarah, when logged in >> can only administer products at sarah.mysite.com/admin/products. >> >> Since there are two account types that require authentication >> (supplier and >> customer), >> the user model is polymorphic: >> >> class User >> belongs_to :allowable, :polymorphic => true >> ... >> end >> >> class Supplier >> has_many :users, :as => :allowable >> end >> >> >> class Customer >> has_one :user, :as => :allowable >> end >> >> A supplier has their own subdmain (sarah.mysite.com) and a customer >> has a >> profile page at mysite.com/people/joe. >> >> When sarah is logged-in, I check she has permission to edit content >> at >> sarah.mysite.com with: >> >> def authorized_resource?(resource) >> current_user.allowable == resource >> end > > I would probably change this method so you are pushing the > responsibility onto your user. For example, I might change the > authorized_resourced method to look like: > > def authorized_resource?(resource) > current_user.can_access?(resource) > end > > Now in your example you can stub/expect the interaction with the user > object. Pushing this decision for who can access what really should > stay out of your controller. Even though the authorization check is > quite simple right now (ie: user.allowable == resource) this puts more > logic in your controller, makes it slightly harder to test and also > re-use. > > Hope this helps, > > Zach > >> >> ''resource'' being a supplier or customer object. >> >> My mind is failing me trying to describe Admin::ProductsController: >> >> http://pastie.org/316414 >> >> Both examples pass, but I''m not sure I understand exactly what I''m >> doing. In >> particular, can I make: >> >> it "should send unauthorized user to home page" do >> controller.should_receive(:authorized_resource?).and_return false >> do_get >> response.should redirect_to(home_path) >> end >> >> >> pass without stubbing the false return. How can I set up the mock >> instances, >> so that the controller method >> ''authorized_resource?'' actually returns a false method. Any >> guidance would >> be much appreciated. >> >> many thanks >> >> Omar >> >> >> _______________________________________________ >> rspec-users mailing list >> rspec-users at rubyforge.org >> http://rubyforge.org/mailman/listinfo/rspec-users >> > > > > -- > Zach Dennis > http://www.continuousthinking.com > http://www.mutuallyhuman.com > _______________________________________________ > rspec-users mailing list > rspec-users at rubyforge.org > http://rubyforge.org/mailman/listinfo/rspec-users