Exemplo n.º 1
0
 def test_sqlite_parameters_for_snap_not_checked(self, mock_mul_dev, mock_exit):
     js = SnapAdmin()
     js.args.file = os.path.join(os.path.dirname(__file__),
                                 'configs', 'main_1.yml')
     js.args.snap = True
     js.args.pre_snapfile = "mock_snap"
     js.start_process()
     self.assertEqual(js.db, self.db)
Exemplo n.º 2
0
 def test_sqlite_parameters_for_snap(self, mock_mul_dev, mock_exit):
     js = SnapAdmin()
     js.args.file = os.path.join(os.path.dirname(__file__),
                                 'configs', 'main_2.yml')
     js.args.snap = True
     js.args.pre_snapfile = "mock_snap"
     self.db['store_in_sqlite'] = True
     self.db['db_name'] = 'jbb.db'
     js.start_process()
     self.assertEqual(js.db, self.db)
Exemplo n.º 3
0
 def test_check_mail_password(
         self, mock_path, mock_notify, mock_pass, mock_compare, mock_arg):
     js = SnapAdmin()
     js.args.file = os.path.join(os.path.dirname(__file__),
                                 'configs', 'main_mail_2.yml')
     js.args.check = True
     js.args.pre_snapfile = "mock_snap"
     mock_path.return_value = os.path.join(os.path.dirname(__file__), 'configs')
     js.start_process()
     self.assertTrue(mock_pass.called)
     self.assertTrue(mock_notify.called)
Exemplo n.º 4
0
 def test_sqlite_parameters_for_check_chksqlite(self, mock_mul_dev, mock_arg):
     js = SnapAdmin()
     js.args.file = os.path.join(os.path.dirname(__file__),
                                 'configs', 'main_5.yml')
     js.args.check = True
     js.args.pre_snapfile = "mock_snap"
     self.db['store_in_sqlite'] = False
     self.db['check_from_sqlite'] = True
     self.db['db_name'] = 'jbb.db'
     self.db['first_snap_id'] = 0
     self.db['second_snap_id'] = 1
     js.start_process()
     self.assertEqual(js.db, self.db)
Exemplo n.º 5
0
    def test_start_process_complete_flow_with_port_in_file(self, mock_connect, mock_path):
        # Testcase to check complete call flow till connect when data passed in command line as files
        # with port present in file
        js = SnapAdmin()
        js.args.snapcheck = True
        js.args.file = "main_with_port.yml"
        js.args.pre_snapfile = "pre"
        js.args.post_snapfile = "post"
        mock_path.return_value = os.path.join(os.path.dirname(__file__), 'configs')
        js.start_process()

        expected_calls_made = [call('1.1.1.1', 'abc', 'xyz', 'pre', ANY, ANY, ANY, port=44)]
        self.assertTrue(mock_connect.called)
        mock_connect.assert_has_calls(expected_calls_made, any_order=True)
Exemplo n.º 6
0
 def test_operation_diff(self, mock_compare, arg_exit):
     js = SnapAdmin()
     js.args.file = os.path.join(os.path.dirname(__file__),
                                 'configs', 'main_1.yml')
     config_file = open(js.args.file, 'r')
     config_data = yaml.load(config_file, Loader=yaml.FullLoader)
     js.args.diff = True
     js.args.pre_snapfile = "mock_snap1"
     js.args.post_snapfile = "mock_snap2"
     js.start_process()
     mock_compare.assert_called_once_with(
         '1.1.1.1',
         config_data,
         js.args.pre_snapfile,
         None,
         'diff')
Exemplo n.º 7
0
    def test_conditional_mail_5(self, mock_path, mock_notify, mock_pass, mock_compare, mock_arg):
        js = SnapAdmin()
        js.args.file = os.path.join(os.path.dirname(__file__),
                                    'configs', 'main_mail_wrong.yml')
        js.args.check = True
        js.args.snap = False
        js.args.snapcheck = False
        js.args.pre_snapfile = "mock_snap"
        js.args.post_snapfile = "mock_snap2"
        mock_path.return_value = os.path.join(os.path.dirname(__file__), 'configs')
        mock_compare.return_value = MagicMock(result='Passed')

        js.start_process()
        self.assertFalse(mock_notify.called)
        self.assertFalse(mock_pass.called)
        self.assertTrue(mock_compare.called)
Exemplo n.º 8
0
    def test_snap_mail(self, mock_logger, mock_notify, mock_pass, mock_compare, mock_arg):
        argparse.ArgumentParser.parse_args = MagicMock()
        argparse.ArgumentParser.parse_args.return_value = argparse.Namespace(check=False,
                                                                             diff=False, file=None, hostname=None,
                                                                             login=None, passwd=None, port=None,
                                                                             post_snapfile=None, pre_snapfile=None,
                                                                             snap=False, snapcheck=False,
                                                                             verbosity=None, version=False)

        js = SnapAdmin()
        js.args.file = os.path.join(os.path.dirname(__file__),
                                    'configs', 'main_mail.yml')
        js.args.snap = True
        js.args.pre_snapfile = "mock_snap"
        js.start_process()
        self.assertFalse(mock_notify.called)
Exemplo n.º 9
0
    def test_start_process_complete_flow_cmd_line_files_group_based(self, mock_connect, mock_path):
        # Testcase to check complete call flow till connect when data passed in command line as files
        # with multiple devices in the yml file but group based
        js = SnapAdmin()
        js.args.snapcheck = True
        js.args.file = "main1.yml"
        js.args.pre_snapfile = "pre"
        js.args.post_snapfile = "post"
        mock_path.return_value = os.path.join(os.path.dirname(__file__), 'configs')
        js.start_process()

        expected_calls_made = [call('1.1.1.3', 'abc', 'def', 'pre', ANY, ANY, ANY),
                               call('1.1.1.4', 'abc', 'def', 'pre', ANY, ANY, ANY),
                               call('1.1.1.5', 'abc', 'def', 'pre', ANY, ANY, ANY),
                               ]
        self.assertTrue(mock_connect.called)
        mock_connect.assert_has_calls(expected_calls_made, any_order=True)
Exemplo n.º 10
0
    def test_start_process_complete_flow_with_port_as_arg(self, mock_connect, mock_path):
        # Testcase to check complete call flow till connect when data passed in command line as files
        # with port present in file and in argument. Port in argument should have higher importance
        js = SnapAdmin()
        js.args.snapcheck = True
        js.args.file = "main2_with_port.yml"
        js.args.pre_snapfile = "pre"
        js.args.post_snapfile = "post"
        mock_path.return_value = os.path.join(os.path.dirname(__file__), 'configs')
        js.args.port = 55
        js.start_process()

        expected_calls_made = [call('1.1.1.3', 'abc', 'def', 'pre', ANY, ANY, ANY, port=55),
                               call('1.1.1.4', 'abc', 'def', 'pre', ANY, ANY, ANY, port=55),
                               call('1.1.1.5', 'abc', 'def', 'pre', ANY, ANY, ANY, port=55),
                               ]
        self.assertTrue(mock_connect.called)
        mock_connect.assert_has_calls(expected_calls_made, any_order=True)
Exemplo n.º 11
0
 def test_operation_snapcheck(
         self, mock_log, mock_snap, mock_check, mock_dev, mock_arg):
     js = SnapAdmin()
     js.args.snapcheck = True
     js.args.file = os.path.join(os.path.dirname(__file__),
                                 'configs', 'main_1.yml')
     config_file = open(js.args.file, 'r')
     config_data = yaml.load(config_file, Loader=yaml.FullLoader)
     js.args.pre_snapfile = "mock_snap"
     js.start_process()
     self.assertTrue(mock_snap.called)
     self.assertTrue(mock_dev.called)
     mock_check.assert_called_once_with(
         '1.1.1.1',
         config_data,
         js.args.pre_snapfile,
         None,
         'snapcheck')
Exemplo n.º 12
0
 def test_operation_snapcheck_local_config(
         self, mock_log, mock_snap, mock_check, mock_dev):
     js = SnapAdmin()
     js.args.snapcheck = True
     js.args.file = os.path.join(os.path.dirname(__file__),
                                 'configs', 'main_local_snapcheck.yml')
     config_file = open(js.args.file, 'r')
     config_data = yaml.load(config_file, Loader=yaml.FullLoader)
     js.args.pre_snapfile = "mock_snap"
     js.start_process()
     self.assertTrue(js.args.local)
     self.assertFalse(mock_dev.called)
     self.assertFalse(mock_snap.called)
     # we check whether get_test was called, indirectly checking whether compare_tests was called.
     expected_calls_made = [call('1.1.1.1', config_data, 'PRE', None, 'snapcheck'),
                            call('1.1.1.1', config_data, 'PRE_42', None, 'snapcheck'),
                            call('1.1.1.1', config_data, 'PRE_314', None, 'snapcheck')
                            ]
     mock_check.assert_has_calls(expected_calls_made, any_order=True)