spec/zk/watch_spec.rb in zk-1.9.6 vs spec/zk/watch_spec.rb in zk-1.10.0

- old
+ new

@@ -15,11 +15,11 @@ end after do mute_logger do if @zk.connected? - @zk.close! + @zk.close! wait_until { !@zk.connected? } end ZK.open(*connection_args) { |zk| zk.rm_rf(@path) } end @@ -31,33 +31,33 @@ @zk.register(@path) do |event| locker.synchronize do callback_called = true end - event.path.should == @path + expect(event.path).to eq(@path) end @zk.exists?(@path, :watch => true) @zk.create(@path, "", :mode => :ephemeral) wait_until(5) { locker.synchronize { callback_called } } - callback_called.should be_true + expect(callback_called).to be(true) end describe :regression do - before do - pending_in_travis("these tests take too long or time out") - end + # before do + # pending_in_travis("these tests take too long or time out") + # end - # this is stupid, and a bad test, but we have to check that events - # don't get re-delivered to a single registered callback just because + # this is stupid, and a bad test, but we have to check that events + # don't get re-delivered to a single registered callback just because # :watch => true was called twice # # again, we're testing a negative here, so consider this a regression check # def wait_for_events_to_not_be_delivered(events) - lambda { wait_until(0.2) { events.length >= 2 } }.should raise_error(WaitWatchers::TimeoutError) + expect { wait_until(0.2) { events.length >= 2 } }.to raise_error(WaitWatchers::TimeoutError) end it %[should only deliver an event once to each watcher registered for exists?] do events = [] @@ -65,18 +65,18 @@ logger.debug "got event #{ev}" events << ev end 2.times do - @zk.exists?(@path, :watch => true).should_not be_true + expect(@zk.exists?(@path, :watch => true)).not_to be(true) end @zk.create(@path, '', :mode => :ephemeral) wait_for_events_to_not_be_delivered(events) - events.length.should == 1 + expect(events.length).to eq(1) end it %[should only deliver an event once to each watcher registered for get] do events = [] @@ -87,18 +87,18 @@ events << ev end 2.times do data, stat = @zk.get(@path, :watch => true) - data.should == 'one' + expect(data).to eq('one') end @zk.set(@path, 'two') wait_for_events_to_not_be_delivered(events) - events.length.should == 1 + expect(events.length).to eq(1) end it %[should only deliver an event once to each watcher registered for children] do events = [] @@ -110,24 +110,24 @@ events << ev end 2.times do children = @zk.children(@path, :watch => true) - children.should be_empty + expect(children).to be_empty end @zk.create("#{@path}/pfx", '', :mode => :ephemeral_sequential) wait_for_events_to_not_be_delivered(events) - events.length.should == 1 + expect(events.length).to eq(1) end end it %[should restrict_new_watches_for? if a successul watch has been set] do @zk.stat(@path, :watch => true) - @zk.event_handler.should be_restricting_new_watches_for(:data, @path) + expect(@zk.event_handler).to be_restricting_new_watches_for(:data, @path) end it %[should not a block on new watches after an operation fails] do # this is a situation where we did get('/blah', :watch => true) but # got an exception, the next watch set should work @@ -139,23 +139,23 @@ events << ev end # get a path that doesn't exist with a watch - lambda { @zk.get(@path, :watch => true) }.should raise_error(ZK::Exceptions::NoNode) + expect { @zk.get(@path, :watch => true) }.to raise_error(ZK::Exceptions::NoNode) - @zk.event_handler.should_not be_restricting_new_watches_for(:data, @path) + expect(@zk.event_handler).not_to be_restricting_new_watches_for(:data, @path) @zk.stat(@path, :watch => true) - @zk.event_handler.should be_restricting_new_watches_for(:data, @path) + expect(@zk.event_handler).to be_restricting_new_watches_for(:data, @path) @zk.create(@path, '') wait_while { events.empty? } - events.should_not be_empty + expect(events).not_to be_empty end it %[should call a child listener when the node is deleted] do events = [] @@ -175,14 +175,14 @@ # We expect to see a delete event show up wait_while(5) { events.empty? } event = events.pop - event.should_not be_nil + expect(event).not_to be_nil - event.path.should == @path - event.type.should == Zookeeper::ZOO_DELETED_EVENT + expect(event.path).to eq(@path) + expect(event.type).to eq(Zookeeper::ZOO_DELETED_EVENT) # Create the node again @zk.create(@path, '') # Watch for children again @@ -194,14 +194,14 @@ # We expect to see another delete event show up wait_while(5) { events.empty? } event = events.pop - event.should_not be_nil + expect(event).not_to be_nil - event.path.should == @path - event.type.should == Zookeeper::ZOO_DELETED_EVENT + expect(event.path).to eq(@path) + expect(event.type).to eq(Zookeeper::ZOO_DELETED_EVENT) end describe ':all' do before do mute_logger do @@ -228,11 +228,11 @@ @zk.stat(@other_path, :watch => true) @zk.create(@path) @zk.create(@other_path, 'blah') - wait_until { events.length == 2 }.should be_true + expect(wait_until { events.length == 2 }).to be(true) end end describe %[event interest] do context do # event catcher scope @@ -248,116 +248,116 @@ end end it %[should deliver only the created event to the created block] do @events.synchronize do - @zk.stat(@path, :watch => true).should_not exist + expect(@zk.stat(@path, :watch => true)).not_to exist @zk.create(@path) @events.wait_for_created - @events.created.should_not be_empty - @events.created.first.should be_node_created - @events.all.should_not be_empty + expect(@events.created).not_to be_empty + expect(@events.created.first).to be_node_created + expect(@events.all).not_to be_empty - @zk.stat(@path, :watch => true).should exist + expect(@zk.stat(@path, :watch => true)).to exist - @events.all.length.should == 1 + expect(@events.all.length).to eq(1) @zk.delete(@path) @events.wait_for_all end - @events.all.length.should == 2 + expect(@events.all.length).to eq(2) # :deleted event was delivered, make sure it didn't get delivered to the :created block - @events.created.length.should == 1 + expect(@events.created.length).to eq(1) end it %[should deliver only the changed event to the changed block] do @events.synchronize do @zk.create(@path) - @zk.stat(@path, :watch => true).should exist + expect(@zk.stat(@path, :watch => true)).to exist @zk.set(@path, 'data') @events.wait_for_changed end - @events.changed.should_not be_empty - @events.changed.length.should == 1 - @events.changed.first.should be_node_changed + expect(@events.changed).not_to be_empty + expect(@events.changed.length).to eq(1) + expect(@events.changed.first).to be_node_changed - @events.all.length.should == 1 + expect(@events.all.length).to eq(1) @events.synchronize do - @zk.stat(@path, :watch => true).should exist + expect(@zk.stat(@path, :watch => true)).to exist @zk.delete(@path) @events.wait_for_all end - @events.all.length.should == 2 + expect(@events.all.length).to eq(2) # :deleted event was delivered, make sure it didn't get delivered to the :changed block - @events.changed.length.should == 1 + expect(@events.changed.length).to eq(1) end it %[should deliver only the child event to the child block] do child_path = nil @events.synchronize do @zk.create(@path) - @zk.children(@path, :watch => true).should be_empty + expect(@zk.children(@path, :watch => true)).to be_empty child_path = @zk.create("#{@path}/m", '', :sequence => true) @events.wait_for_child - @events.child.length.should == 1 - @events.child.first.should be_node_child + expect(@events.child.length).to eq(1) + expect(@events.child.first).to be_node_child - @zk.stat(@path, :watch => true).should exist + expect(@zk.stat(@path, :watch => true)).to exist - @events.all.length.should == 1 + expect(@events.all.length).to eq(1) @zk.set(@path, '') # equivalent to a 'touch' @events.wait_for_all end - @events.all.length.should == 2 + expect(@events.all.length).to eq(2) # :changed event was delivered, make sure it didn't get delivered to the :child block - @events.child.length.should == 1 + expect(@events.child.length).to eq(1) end it %[should deliver only the deleted event to the deleted block] do @events.synchronize do @zk.create(@path) - @zk.stat(@path, :watch => true).should exist + expect(@zk.stat(@path, :watch => true)).to exist @zk.delete(@path) @events.wait_for_deleted @events.wait_while_all { |all| all.empty? } - @events.deleted.should_not be_empty - @events.deleted.first.should be_node_deleted - @events.all.length.should == 1 + expect(@events.deleted).not_to be_empty + expect(@events.deleted.first).to be_node_deleted + expect(@events.all.length).to eq(1) - @zk.stat(@path, :watch => true).should_not exist + expect(@zk.stat(@path, :watch => true)).not_to exist @zk.create(@path) @events.wait_for_all end - @events.all.length.should be > 1 + expect(@events.all.length).to be > 1 # :deleted event was delivered, make sure it didn't get delivered to the :created block - @events.deleted.length.should == 1 + expect(@events.deleted.length).to eq(1) end end # event catcher scope it %[should deliver interested events to a block registered for multiple deliveries] do @events = [] @@ -370,34 +370,34 @@ @cond.broadcast end end @events.synchronize do - @zk.stat(@path, :watch => true).should_not exist + expect(@zk.stat(@path, :watch => true)).not_to exist @zk.create(@path) @cond.wait(5) - @events.should_not be_empty - @events.length.should == 1 - @events.first.should be_node_created + expect(@events).not_to be_empty + expect(@events.length).to eq(1) + expect(@events.first).to be_node_created - @zk.stat(@path, :watch => true).should exist + expect(@zk.stat(@path, :watch => true)).to exist @zk.set(@path, 'blah') @cond.wait(5) end - @events.length.should == 2 - @events.last.should be_node_changed + expect(@events.length).to eq(2) + expect(@events.last).to be_node_changed end it %[should barf if an invalid event name is given] do - lambda do + expect do @zk.register(@path, :only => :tripping) { } - end.should raise_error(ArgumentError) + end.to raise_error(ArgumentError) end end # event interest end # watchers describe 'state watcher' do @@ -414,23 +414,11 @@ @zk.close! if @zk and not @zk.closed? end it %[should fire the registered callback] do wait_while { @event.nil? } - @event.should_not be_nil + expect(@event).not_to be_nil end end - - describe 'registered listeners' do - before do - @event = flexmock(:event) do |m| - m.should_receive(:type).and_return(-1) - m.should_receive(:zk=).with(any()) - m.should_receive(:node_event?).and_return(false) - m.should_receive(:state_event?).and_return(true) - m.should_receive(:state).and_return(Zookeeper::Constants::ZOO_CONNECTED_STATE) - end - end - end # registered listeners end end