def test_dellos9_config_match_exact(self):
     lines = [
         'ip address 1.2.3.4/24', 'description test string', 'shutdown'
     ]
     parents = ['interface fortyGigE 1/6']
     set_module_args(dict(lines=lines, parents=parents, match='exact'))
     commands = parents + lines
     self.execute_module(changed=True, commands=commands, sort=False)
 def test_dellos9_command_match_all(self):
     wait_for = [
         'result[0] contains "Dell Real"',
         'result[0] contains "Operating System"'
     ]
     set_module_args(
         dict(commands=['show version'], wait_for=wait_for, match='all'))
     self.execute_module()
 def test_dellos9_command_match_any(self):
     wait_for = [
         'result[0] contains "Dell Real"',
         'result[0] contains "test string"'
     ]
     set_module_args(
         dict(commands=['show version'], wait_for=wait_for, match='any'))
     self.execute_module()
 def test_dellos9_facts_gather_subset_config(self):
     set_module_args({'gather_subset': 'config'})
     result = self.execute_module()
     ansible_facts = result['ansible_facts']
     self.assertIn('default', ansible_facts['ansible_net_gather_subset'])
     self.assertIn('config', ansible_facts['ansible_net_gather_subset'])
     self.assertEqual('dellos9_sw1', ansible_facts['ansible_net_hostname'])
     self.assertIn('ansible_net_config', ansible_facts)
 def test_dellos9_config_save(self):
     set_module_args(dict(save=True))
     self.execute_module(changed=True)
     self.assertEqual(self.run_commands.call_count, 1)
     self.assertEqual(self.get_config.call_count, 0)
     self.assertEqual(self.load_config.call_count, 0)
     args = self.run_commands.call_args[0][1]
     self.assertDictContainsSubset(
         {'command': 'copy running-config startup-config'}, args[0])
 def test_dellos9_command_match_all_failure(self):
     wait_for = [
         'result[0] contains "Dell Real"',
         '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_dellos9_facts_gather_subset_hardware(self):
     set_module_args({'gather_subset': 'hardware'})
     result = self.execute_module()
     ansible_facts = result['ansible_facts']
     self.assertIn('default', ansible_facts['ansible_net_gather_subset'])
     self.assertIn('hardware', ansible_facts['ansible_net_gather_subset'])
     self.assertEqual([
         'flash', 'fcmfs', 'nfsmount', 'ftp', 'tftp', 'scp', 'http', 'https'
     ], ansible_facts['ansible_net_filesystems'])
     self.assertEqual(3128820, ansible_facts['ansible_net_memtotal_mb'])
     self.assertEqual(3125722, ansible_facts['ansible_net_memfree_mb'])
 def test_dellos9_facts_gather_subset_interfaces(self):
     set_module_args({'gather_subset': 'interfaces'})
     result = self.execute_module()
     ansible_facts = result['ansible_facts']
     self.assertIn('default', ansible_facts['ansible_net_gather_subset'])
     self.assertIn('interfaces', ansible_facts['ansible_net_gather_subset'])
     self.assertIn('fortyGigE 0/24',
                   ansible_facts['ansible_net_interfaces'].keys())
     self.assertEqual(['Ma 0/0'],
                      list(ansible_facts['ansible_net_neighbors'].keys()))
     self.assertIn('ansible_net_interfaces', ansible_facts)
 def test_dellos9_facts_gather_subset_default(self):
     set_module_args(dict())
     result = self.execute_module()
     ansible_facts = result['ansible_facts']
     self.assertIn('hardware', ansible_facts['ansible_net_gather_subset'])
     self.assertIn('default', ansible_facts['ansible_net_gather_subset'])
     self.assertIn('interfaces', ansible_facts['ansible_net_gather_subset'])
     self.assertEqual('dellos9_sw1', ansible_facts['ansible_net_hostname'])
     self.assertIn('fortyGigE 0/24',
                   ansible_facts['ansible_net_interfaces'].keys())
     self.assertEqual(3128820, ansible_facts['ansible_net_memtotal_mb'])
     self.assertEqual(3125722, ansible_facts['ansible_net_memfree_mb'])
 def test_dellos9_config_lines_wo_parents(self):
     set_module_args(dict(lines=['hostname foo']))
     commands = ['hostname foo']
     self.execute_module(changed=True, commands=commands)
 def test_dellos9_config_lines_w_parents(self):
     set_module_args(
         dict(lines=['shutdown'], parents=['interface fortyGigE 1/6']))
     commands = ['interface fortyGigE 1/6', 'shutdown']
     self.execute_module(changed=True, commands=commands)
 def test_dellos9_config_backup(self):
     set_module_args(dict(backup=True))
     result = self.execute_module()
     self.assertIn('__backup__', result)
 def test_dellos9_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_dellos9_command_wait_for(self):
     wait_for = 'result[0] contains "Dell Real"'
     set_module_args(dict(commands=['show version'], wait_for=wait_for))
     self.execute_module()
 def test_dellos9_config_src(self):
     src = load_fixture('dellos9_config_src.cfg')
     set_module_args(dict(src=src))
     commands = ['hostname foo', 'interface fortyGigE 1/6', 'no ip address']
     self.execute_module(changed=True, commands=commands)
 def test_dellos9_config_after(self):
     set_module_args(
         dict(lines=['hostname foo'], after=['snmp-server contact bar']))
     commands = ['hostname foo', 'snmp-server contact bar']
     self.execute_module(changed=True, commands=commands, sort=False)
 def test_dellos9_config_match_none(self):
     lines = ['hostname router']
     set_module_args(dict(lines=lines, match='none'))
     self.execute_module(changed=True, commands=lines)
 def test_dellos9_config_replace_block(self):
     lines = ['description test string', 'test string']
     parents = ['interface fortyGigE 1/6']
     set_module_args(dict(lines=lines, replace='block', parents=parents))
     commands = parents + lines
     self.execute_module(changed=True, commands=commands)
 def test_dellos9_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_dellos9_config_before_after_no_change(self):
     set_module_args(
         dict(lines=['hostname router'],
              before=['snmp-server contact bar'],
              after=['snmp-server location chennai']))
     self.execute_module()
 def test_dellos9_config_unchanged(self):
     src = load_fixture('dellos9_config_config.cfg')
     set_module_args(dict(src=src))
     self.execute_module()
 def test_dellos9_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('Dell Real Time'))