def test_audit_item_method_account_pattern_score_override(self):
        account_pattern_score = AccountPatternAuditScore(
            account_type=self.account_type.name,
            account_field='name',
            account_pattern=self.test_account.name,
            score=2)

        item_audit_score = ItemAuditScore(
            technology='test_index',
            method='check_test (AuditorTestObj)',
            score=5,
            disabled=False,
            account_pattern_scores=[account_pattern_score])
        db.session.add(account_pattern_score)
        db.session.add(item_audit_score)
        db.session.commit()

        item = ChangeItem(index='test_index',
                          account=self.test_account.name,
                          name='item_name')

        auditor = AuditorTestObj(accounts=[self.test_account.name])
        self.assertEqual(len(item.audit_issues), 0)
        auditor.items = [item]
        auditor.audit_objects()
        self.assertEqual(len(item.audit_issues), 1)
        self.assertEqual(item.audit_issues[0].issue, 'Test issue')
        self.assertEqual(item.audit_issues[0].score, 2)
Esempio n. 2
0
    def test_audit_item(self):
        auditor = AuditorTestObj(accounts=['test_account'])
        item = ChangeItem(index='test_index',
                          account='test_account', name='item_name')

        self.assertEquals(len(item.audit_issues), 0)
        auditor.items = [item]
        auditor.audit_objects()
        self.assertEquals(len(item.audit_issues), 1)
        self.assertEquals(item.audit_issues[0].issue, 'Test issue')
        self.assertEquals(item.audit_issues[0].score, 10)
    def test_audit_item(self):
        auditor = AuditorTestObj(accounts=['test_account'])
        item = ChangeItem(index='test_index',
                          account='test_account',
                          name='item_name')

        self.assertEqual(len(item.audit_issues), 0)
        auditor.items = [item]
        auditor.audit_objects()
        self.assertEqual(len(item.audit_issues), 1)
        self.assertEqual(item.audit_issues[0].issue, 'Test issue')
        self.assertEqual(item.audit_issues[0].score, 10)
Esempio n. 4
0
    def test_audit_item_method_disabled(self):
        item_audit_score = ItemAuditScore(technology='test_index', method='check_test (AuditorTestObj)',
                                          score=0, disabled=True)
        db.session.add(item_audit_score)
        db.session.commit()

        auditor = AuditorTestObj(accounts=['test_account'])
        item = ChangeItem(index='test_index',
                          account='test_account', name='item_name')

        self.assertEquals(len(item.audit_issues), 0)
        auditor.items = [item]
        auditor.audit_objects()
        self.assertEquals(len(item.audit_issues), 0)
Esempio n. 5
0
    def test_audit_item_method_score_override(self):
        item_audit_score = ItemAuditScore(technology='test_index', method='check_test (AuditorTestObj)',
                                          score=5, disabled=False)
        db.session.add(item_audit_score)
        db.session.commit()

        item = ChangeItem(index='test_index',
                          account=self.test_account.name, name='item_name')

        auditor = AuditorTestObj(accounts=[self.test_account.name])
        self.assertEquals(len(item.audit_issues), 0)
        auditor.items = [item]
        auditor.audit_objects()
        self.assertEquals(len(item.audit_issues), 1)
        self.assertEquals(item.audit_issues[0].issue, 'Test issue')
        self.assertEquals(item.audit_issues[0].score, 5)
    def test_audit_item_method_disabled(self):
        item_audit_score = ItemAuditScore(technology='test_index',
                                          method='check_test (AuditorTestObj)',
                                          score=0,
                                          disabled=True)
        db.session.add(item_audit_score)
        db.session.commit()

        auditor = AuditorTestObj(accounts=['test_account'])
        item = ChangeItem(index='test_index',
                          account='test_account',
                          name='item_name')

        self.assertEqual(len(item.audit_issues), 0)
        auditor.items = [item]
        auditor.audit_objects()
        self.assertEqual(len(item.audit_issues), 0)
Esempio n. 7
0
    def test_save_issues(self):
        item = Item(region="us-west-2", name="testitem", technology=self.technology, account=self.test_account)
        revision = ItemRevision(item=item, config={}, active=True)
        item_audit = ItemAudit(item=item, issue="test issue")
        db.session.add(item)
        db.session.add(revision)
        db.session.add(item_audit)
        db.session.commit()

        auditor = Auditor(accounts=[self.test_account.name])
        auditor.index = self.technology.name
        auditor.i_am_singular = self.technology.name
        auditor.items = auditor.read_previous_items()
        auditor.audit_objects()

        try:
            auditor.save_issues()
        except AttributeError as e:
            self.fail("Auditor.save_issues() raised AttributeError unexpectedly: {}".format(e.message))
    def test_save_issues(self):
        item = Item(region="us-west-2",
                    name="testitem",
                    technology=self.technology,
                    account=self.test_account)
        revision = ItemRevision(item=item, config={}, active=True)
        item_audit = ItemAudit(item=item, issue="test issue")
        db.session.add(item)
        db.session.add(revision)
        db.session.add(item_audit)
        db.session.commit()

        auditor = Auditor(accounts=[self.test_account.name])
        auditor.index = self.technology.name
        auditor.i_am_singular = self.technology.name
        auditor.items = auditor.read_previous_items()
        auditor.audit_objects()

        try:
            auditor.save_issues()
        except AttributeError as e:
            self.fail(
                "Auditor.save_issues() raised AttributeError unexpectedly: {}".
                format(e.message))
    def test_issue_presevation(self):
        """
        Ensure that issues are not deleted and that justifications are preserved.
            new issue
            existing issue
            fixed issue
            regressed issue
        Context: PR 788
        """
        auditor = AuditorTestObj(accounts=['test_account'])
        item = ChangeItem(index='test_index',
                          account='test_account',
                          name='item_name')

        self.assertEqual(len(item.audit_issues), 0)
        auditor.items = [item]

        # New Issue
        auditor.audit_objects()
        self.assertEqual(len(item.audit_issues), 1)
        auditor.save_issues()
        self.assertEqual(item.audit_issues[0].fixed, False)
        self.assertEqual(item.audit_issues[0].justified, False)

        issue = item.audit_issues[0]

        # Justify this new issue.
        from security_monkey import db
        for issue in ItemAudit.query.all():
            issue.justified = True
            issue.justification = 'This is okay because...'
            db.session.add(issue)
        db.session.commit()

        # Existing Issue
        auditor.audit_objects()
        self.assertEqual(len(item.audit_issues), 1)
        auditor.save_issues()
        self.assertEqual(item.audit_issues[0].fixed, False)
        self.assertEqual(item.audit_issues[0].justified, True)

        # Fixed Issue
        item.audit_issues = []
        auditor.save_issues()
        self.assertEqual(issue.fixed, True)
        self.assertEqual(issue.justified, True)

        # Regressed Issue
        auditor.audit_objects()
        auditor.save_issues()
        self.assertEqual(issue.fixed, False)
        self.assertEqual(issue.justified, True)
Esempio n. 10
0
    def test_issue_presevation(self):
        """
        Ensure that issues are not deleted and that justifications are preserved.
            new issue
            existing issue
            fixed issue
            regressed issue
        Context: PR 788
        """
        auditor = AuditorTestObj(accounts=['test_account'])
        item = ChangeItem(index='test_index',
                          account='test_account', name='item_name')

        self.assertEquals(len(item.audit_issues), 0)
        auditor.items = [item]

        # New Issue
        auditor.audit_objects()
        self.assertEquals(len(item.audit_issues), 1)
        auditor.save_issues()
        self.assertEquals(item.audit_issues[0].fixed, False)
        self.assertEquals(item.audit_issues[0].justified, False)

        issue = item.audit_issues[0]

        # Justify this new issue.
        from security_monkey import db
        for issue in ItemAudit.query.all():
            issue.justified = True
            issue.justification = 'This is okay because...'
            db.session.add(issue)
        db.session.commit()

        # Existing Issue
        auditor.audit_objects()
        self.assertEquals(len(item.audit_issues), 1)
        auditor.save_issues()
        self.assertEquals(item.audit_issues[0].fixed, False)
        self.assertEquals(item.audit_issues[0].justified, True)

        # Fixed Issue
        item.audit_issues = []
        auditor.save_issues()
        self.assertEquals(issue.fixed, True)
        self.assertEquals(issue.justified, True)

        # Regressed Issue
        auditor.audit_objects()
        auditor.save_issues()
        self.assertEquals(issue.fixed, False)
        self.assertEquals(issue.justified, True)