def test_nos_facts(self):
     set_module_args(dict(gather_subset='default'))
     result = self.execute_module()
     self.assertEqual(result['ansible_facts']['ansible_net_model'],
                      'BR-VDX6740')
     self.assertEqual(result['ansible_facts']['ansible_net_serialnum'],
                      'CPL2541K01E')
 def test_nos_command_match_any(self):
     wait_for = [
         'result[0] contains "Network"', 'result[0] contains "test string"'
     ]
     set_module_args(
         dict(commands=['show version'], wait_for=wait_for, match='any'))
     self.execute_module()
 def test_nos_config_src(self):
     src = load_fixture('nos_config_src.cfg')
     set_module_args(dict(src=src))
     commands = [
         'hostname foo', 'interface TenGigabitEthernet 104/0/0',
         'no ip address'
     ]
     self.execute_module(changed=True, commands=commands)
 def test_nos_command_match_all(self):
     wait_for = [
         'result[0] contains "Network"',
         'result[0] contains "Network Operating System Software"'
     ]
     set_module_args(
         dict(commands=['show version'], wait_for=wait_for, match='all'))
     self.execute_module()
 def test_nos_command_match_all_failure(self):
     wait_for = [
         'result[0] contains "Network Operating System Software"',
         'result[0] contains "test string"'
     ]
     commands = ['show version', 'show version']
     set_module_args(dict(commands=commands, wait_for=wait_for,
                          match='all'))
     self.execute_module(failed=True)
 def test_nos_config_match_exact(self):
     lines = [
         'ip address 1.2.3.4 255.255.255.0', 'description test string',
         'shutdown'
     ]
     parents = ['interface TenGigabitEthernet 104/0/0']
     set_module_args(dict(lines=lines, parents=parents, match='exact'))
     commands = parents + lines
     self.execute_module(changed=True, commands=commands, sort=False)
 def test_nos_command_configure_error(self):
     commands = ['configure terminal']
     set_module_args({
         'commands': commands,
         '_ansible_check_mode': True,
     })
     result = self.execute_module(failed=True)
     self.assertEqual(
         result['msg'],
         'nos_command does not support running config mode commands. '
         'Please use nos_config instead')
 def test_nos_config_replace_block(self):
     lines = ['description test string', 'test string']
     parents = ['interface TenGigabitEthernet 104/0/0']
     set_module_args(dict(lines=lines, replace='block', parents=parents))
     commands = parents + lines
     self.execute_module(changed=True, commands=commands)
 def test_nos_config_after(self):
     set_module_args(dict(lines=['hostname foo'], after=['test1', 'test2']))
     commands = ['hostname foo', 'test1', 'test2']
     self.execute_module(changed=True, commands=commands, sort=False)
 def test_nos_config_lines_w_parents(self):
     set_module_args(
         dict(lines=['shutdown'],
              parents=['interface TenGigabitEthernet 104/0/0']))
     commands = ['interface TenGigabitEthernet 104/0/0', 'shutdown']
     self.execute_module(changed=True, commands=commands)
 def test_nos_command_retries(self):
     wait_for = 'result[0] contains "test string"'
     set_module_args(
         dict(commands=['show version'], wait_for=wait_for, retries=2))
     self.execute_module(failed=True)
     self.assertEqual(self.run_commands.call_count, 2)
 def test_nos_config_config(self):
     config = 'hostname localhost'
     set_module_args(dict(lines=['hostname router'], config=config))
     commands = ['hostname router']
     self.execute_module(changed=True, commands=commands)
 def test_nos_config_replace_config_requires_src(self):
     args = dict(replace='config')
     set_module_args(args)
     self.execute_module(failed=True)
 def test_nos_config_unchanged(self):
     src = load_fixture('nos_config_config.cfg')
     set_module_args(dict(src=src))
     self.execute_module()
 def test_nos_config_replace_block_requires_lines(self):
     args = dict(replace='block')
     set_module_args(args)
     self.execute_module(failed=True)
 def test_nos_config_match_strict_requires_lines(self):
     args = dict(match='strict')
     set_module_args(args)
     self.execute_module(failed=True)
 def test_nos_config_src_and_parents_fails(self):
     args = dict(src='foo', parents='foo')
     set_module_args(args)
     self.execute_module(failed=True)
 def test_nos_command_multiple(self):
     set_module_args(dict(commands=['show version', 'show version']))
     result = self.execute_module()
     self.assertEqual(len(result['stdout']), 2)
     self.assertTrue(result['stdout'][0].startswith(
         'Network Operating System Software'))
 def test_nos_config_lines_wo_parents(self):
     set_module_args(dict(lines=['hostname foo']))
     commands = ['hostname foo']
     self.execute_module(changed=True, commands=commands)
 def test_nos_command_wait_for(self):
     wait_for = 'result[0] contains "Network Operating System Software"'
     set_module_args(dict(commands=['show version'], wait_for=wait_for))
     self.execute_module()
 def test_nos_config_match_none(self):
     lines = ['hostname router']
     set_module_args(dict(lines=lines, match='none'))
     self.execute_module(changed=True, commands=lines)
 def test_nos_config_backup(self):
     set_module_args(dict(backup=True))
     result = self.execute_module()
     self.assertIn('__backup__', result)
 def test_nos_config_before_after_no_change(self):
     set_module_args(
         dict(lines=['hostname router'],
              before=['test1', 'test2'],
              after=['test3', 'test4']))
     self.execute_module()