spec/methods_spec.rb in sloe-0.8.7 vs spec/methods_spec.rb in sloe-0.8.9
- old
+ new
@@ -1,107 +1,83 @@
-require 'sloe/junos'
+require 'spec_helper'
describe Sloe do
-
- before(:all) do
- @jnx_mibs = Dir.glob("./mibs/JUNIPER-*.yaml").map { |f| File.basename(f, '.yaml') }
- @args = {
- :target => 'capella',
- :username => 'netconf',
- :password => 'netconf',
- :mib_dir => './mibs',
- :mib_modules => ["SNMPv2-SMI", "SNMPv2-MIB", "IF-MIB", "IP-MIB", "TCP-MIB", "UDP-MIB"].concat(@jnx_mibs)
+ let(:host) { ENV['hosts'].split(':').first }
+ let(:jnx_mibs) do
+ Dir.glob('./mibs/JUNIPER-*.yaml').map { |f| File.basename(f, '.yaml') }
+ end
+ let(:login) do
+ {
+ target: Envyable.load('/tmp/env.yaml', host)['ip_address'],
+ username: 'root',
+ password: 'Juniper',
+ port: Envyable.load('/tmp/env.yaml', host)['ssh_port'],
+ mib_dir: './mibs',
+ mib_modules: %w{SNMPv2-SMI SNMPv2-MIB IF-MIB IP-MIB TCP-MIB UDP-MIB}.concat(jnx_mibs),
+ snmp_port: 1161
}
-
- @dut = Sloe::Junos.new(@args)
end
+ subject(:dut) { Sloe::Junos.new(login) }
- context "SNMP API" do
- it "snmp.get_value() returns valid value" do
- @dut.snmp.get_value('sysDescr.0').should =~ /^Juniper Networks,/
+ context 'SNMP API' do
+ it 'snmp.get_value returns valid value' do
+ expect(dut.snmp.get_value('sysDescr.0')).to include('Juniper Networks')
end
- it "snmp.get() returns one PDU" do
- @pdu = @dut.snmp.get('sysDescr.0')
- @pdu.varbind_list.should have(1).item
+ it 'snmp.get returns one PDU' do
+ expect(dut.snmp.get('sysDescr.0').varbind_list.size).to eq(1)
end
- it "snmp.get_bulk() returns a list of PDUs" do
- @pdu = @dut.snmp.get_bulk(0, 5, 'system')
- @pdu.varbind_list.should have(5).items
+ it 'snmp.get_bulk returns a list of PDUs' do
+ expect(dut.snmp.get_bulk(0, 5, 'system').varbind_list.size).to eq(5)
end
- it "snmp.get_next() returns one PDU" do
- @pdu = @dut.snmp.get_next('system')
- @pdu.varbind_list.should have(1).item
+ it 'snmp.get_next returns one PDU' do
+ expect(dut.snmp.get_next('system').varbind_list.size).to eq(1)
end
- it "snmp.walk() returns a list of PDUs none of which are nil" do
- @dut.snmp.walk('system') { |vb| vb.should_not be_nil }
+ it 'snmp.walk returns a list of PDUs' do
+ vbs = []
+ dut.snmp.walk('system') { |vb| vbs << vb }
+ expect(vbs.size).to be > 0
end
end
- context "JNX Enterprise MIBs" do
- it "jnxBoxDescr.0 has a valid value" do
- @dut.snmp.get_value('jnxBoxDescr.0').should =~ /^Juniper/
+ context 'JNX Enterprise MIBs' do
+ it 'jnxCmCfgChgLatestUser.0 has a valid value' do
+ expect(dut.snmp.get_value('jnxCmCfgChgLatestUser.0')).not_to eq(SNMP::NoSuchObject)
end
end
- context "NETCONF API" do
- it "rpc.get_interface_information() functions without error" do
- lambda { @dut.rpc.get_interface_information() }.should_not raise_error
+ context 'NETCONF API' do
+ it 'rpc.get_interface_information functions without error' do
+ expect { dut.rpc.get_interface_information }.not_to raise_error
end
- it "rpc.get_ospf_neighbor_information() functions without error" do
- lambda { @dut.rpc.get_ospf_neighbor_information() }.should_not raise_error
+ it 'rpc.get_ospf_neighbor_information functions without error' do
+ expect { dut.rpc.get_ospf_neighbor_information }.not_to raise_error
end
end
- context "SCP API" do
- it "scp.download() functions without error" do
- lambda { @dut.scp.download!('/config/juniper.conf.gz', '/var/tmp/juniper.conf.gz') }.should_not raise_error
+ context 'SCP API' do
+ it 'scp.download() functions without error' do
+ expect { dut.scp.download!('/config/juniper.conf.gz', '/var/tmp/juniper.conf.gz') }.not_to raise_error
File.delete('/var/tmp/juniper.conf.gz')
end
- it "scp.upload() functions without error" do
+ it 'scp.upload() functions without error' do
File.new('/var/tmp/test', 'w+')
- lambda { @dut.scp.upload!('/var/tmp/test', 'test') }.should_not raise_error
- @dut.rpc.file_delete(:path => 'test')
+ expect { dut.scp.upload!('/var/tmp/test', 'test') }.not_to raise_error
+ dut.rpc.file_delete(path: 'test')
File.delete('/var/tmp/test')
end
end
- context "CLI API" do
+ context 'CLI API' do
it "cli('show version') functions without error" do
- lambda { @dut.cli("show version") }.should_not raise_error
+ expect { dut.cli('show version') }.not_to raise_error
end
it "cli('show version') contains OS information" do
- @dut.cli("show version").should be_a(String)
- @dut.cli("show version").should =~ /JUNOS Base OS/
+ expect(dut.cli('show version')).to include('JUNOS Base OS')
end
it "cli('show version', :foo => 'bar') still contains OS information" do
- @dut.cli("show version", :foo => 'bar').should be_a(String)
- @dut.cli("show version", :foo => 'bar').should =~ /JUNOS Base OS/
+ expect(dut.cli('show version', foo: 'bar')).to include('JUNOS Base OS')
end
it "cli('clear interface statistics') empty reply does not cause an error" do
- lambda { @dut.cli('clear interface statistics fxp0') }.should_not raise_error
+ expect { dut.cli('clear interface statistics fxp0') }.not_to raise_error
end
end
-
- context "Helper methods" do
- before( :all ) do
- Dir.mkdir( 'configs' )
- @apply = File.open( "configs/capella-apply.set", "w" )
- @apply.write( 'set system location building "In a galaxy far, far, away"' )
- @apply.close
-
- @delete = File.open( "configs/capella-delete.set", "w" )
- @delete.write( 'delete system location')
- @delete.close
- end
-
- it "setup() with default args updates the router config" do
- lambda { @dut.setup() }.should_not raise_error
- end
- it "clearup() with default args updates the router config" do
- lambda { @dut.clearup() }.should_not raise_error
- end
-
- after(:all) do
- FileUtils.rm_rf( 'configs' )
- end
- end
-end
\ No newline at end of file
+end