Ejemplo n.º 1
0
    def __init__(self, obj, filter_fields=None, exclude_fields=None, start_date=None, end_date=None, **kwargs):
        self.object = obj
        self.filter_fields = filter_fields or []
        self.exclude_fields = exclude_fields or []
        self.start_date = start_date
        self.end_date = end_date

        if isinstance(obj, Model):
            #it's a django model, search by content_type
            key = [obj.__class__.__name__, str(obj.id)]
        elif isinstance(obj, Document):
            #it's a couchdbkit document, search by __class__
            key = [obj.__class__.__name__, obj._id]
        elif isinstance(obj, dict):
            #it's a couchdbkit document, search by __class__
            key = [obj['doc_type'], obj['_id']]

        final_fields = []
        if len(self.filter_fields) > 0:
            final_fields = filter_fields[:]
        self.final_fields = final_fields

        revisions=ModelActionAudit.view('auditcare/model_actions_by_id', key=key, reduce=False, include_docs=True).all()
        #need a better view to filter by date

        #todo: filter by date ranges
        #return sorted(revisions, key=lambda x: x.event_date, reverse=True)

        self.revisions=sorted(ModelActionAudit.view('auditcare/model_actions_by_id', key=key, reduce=False, include_docs=True).all(), key=lambda x: x.event_date)
Ejemplo n.º 2
0
    def testModelEventChanges(self):
        """
        Test that django model events do change.  A single change
        """
        model_count = ModelActionAudit.view("auditcare/model_actions_by_id",
                                            include_docs=True,
                                            reduce=False).count()

        self.user.email = '*****@*****.**'
        time.sleep(1)
        self.user.save()
        time.sleep(1)

        model_count2 = ModelActionAudit.view("auditcare/model_actions_by_id",
                                             include_docs=True,
                                             reduce=False).count()
        self.assertEqual(model_count + 1, model_count2)

        #Filter for email and see if it shows up
        email_wrapper = history_for_doc(self.user, filter_fields=['email'])
        email_narratives = email_wrapper.change_narratives()
        self.assertEqual(1, len(email_narratives))

        #exclude for email and see if it doesn't show up
        exclude_wrapper = history_for_doc(self.user, exclude_fields=['email'])
        exclude_narratives = exclude_wrapper.change_narratives()
        self.assertEqual(0, len(exclude_narratives))

        #exclude and filter for email and see if it doesn't show up
        exclude_wrapper = history_for_doc(self.user,
                                          filter_fields=['email'],
                                          exclude_fields=['email'])
        exclude_narratives = exclude_wrapper.change_narratives()
        self.assertEqual(0, len(exclude_narratives))

        #Filter for email and see if it shows up
        new_last_name = 'alksjflajdsflkjsadf'
        self.user.last_name = new_last_name
        time.sleep(1)
        self.user.save()

        name_change_wrapper = history_for_doc(
            self.user, filter_fields=['email', 'first_name', 'last_name'])
        name_change_narratives = name_change_wrapper.change_narratives()

        change_generator = name_change_narratives[-1]['changes']

        seen_last_name = False
        seen_old_value = False
        seen_new_value = False
        for ctuple in change_generator:
            if ctuple[0] == 'last_name':
                seen_last_name = True
            if ctuple[1][0] == 'mock':
                seen_old_value = True
            if ctuple[1][1] == new_last_name:
                seen_new_value = True
        self.assertTrue(seen_last_name)
        self.assertTrue(seen_old_value)
        self.assertTrue(seen_new_value)
Ejemplo n.º 3
0
    def __init__(self, obj, filter_fields=None, exclude_fields=None, start_date=None, end_date=None, **kwargs):
        self.object = obj
        self.filter_fields = filter_fields
        self.exclude_fields = exclude_fields
        self.start_date = start_date
        self.end_date = end_date

        if isinstance(obj, Model):
            #it's a django model, search by content_type
            key = [obj.__class__.__name__, str(obj.id)]
        elif isinstance(obj, Document):
            #it's a couchdbkit document, search by __class__
            key = [obj.__class__.__name__, obj._id]
        elif isinstance(obj, dict):
            #it's a couchdbkit document, search by __class__
            key = [obj['doc_type'], obj['_id']]


        final_fields = []
        if len(filter_fields) > 0:
            final_fields = filter_fields[:]
        else:
            pass
        self.final_fields = final_fields

        revisions=ModelActionAudit.view('auditcare/model_actions_by_id', key=key, reduce=False, include_docs=True).all()
        #need a better view to filter by date

        #todo: filter by date ranges
        #return sorted(revisions, key=lambda x: x.event_date, reverse=True)

        self.revisions=sorted(ModelActionAudit.view('auditcare/model_actions_by_id', key=key, reduce=False, include_docs=True).all(), key=lambda x: x.event_date)
Ejemplo n.º 4
0
    def testModelEventChanges(self):
        """
        Test that django model events do change.  A single change
        """
        model_count = ModelActionAudit.view("auditcare/model_actions_by_id", include_docs=True, reduce=False).count()

        self.user.email='*****@*****.**'
        time.sleep(1)
        self.user.save()
        time.sleep(1)

        model_count2 = ModelActionAudit.view("auditcare/model_actions_by_id", include_docs=True, reduce=False).count()
        self.assertEqual(model_count+1, model_count2)


        #Filter for email and see if it shows up
        email_wrapper = history_for_doc(self.user, filter_fields=['email'])
        email_narratives = email_wrapper.change_narratives()
        self.assertEqual(1, len(email_narratives))

        #exclude for email and see if it doesn't show up
        exclude_wrapper = history_for_doc(self.user, exclude_fields=['email'])
        exclude_narratives = exclude_wrapper.change_narratives()
        self.assertEqual(0, len(exclude_narratives))

        #exclude and filter for email and see if it doesn't show up
        exclude_wrapper = history_for_doc(self.user, filter_fields=['email'], exclude_fields=['email'])
        exclude_narratives = exclude_wrapper.change_narratives()
        self.assertEqual(0, len(exclude_narratives))


        #Filter for email and see if it shows up
        new_last_name = 'alksjflajdsflkjsadf'
        self.user.last_name= new_last_name
        time.sleep(1)
        self.user.save()

        name_change_wrapper = history_for_doc(self.user, filter_fields=['email', 'first_name', 'last_name'])
        name_change_narratives = name_change_wrapper.change_narratives()

        change_generator = name_change_narratives[-1]['changes']

        seen_last_name = False
        seen_old_value = False
        seen_new_value = False
        for ctuple in change_generator:
            if ctuple[0] == 'last_name':
                seen_last_name = True
            if ctuple[1][0] == 'mock':
                seen_old_value = True
            if ctuple[1][1] == new_last_name:
                seen_new_value = True
        self.assertTrue(seen_last_name)
        self.assertTrue(seen_old_value)
        self.assertTrue(seen_new_value)
Ejemplo n.º 5
0
 def testModifyUser(self):
     model_count = ModelActionAudit.view("auditcare/model_actions").count()
     total_count = AuditEvent.view("auditcare/all_events").count()
     
     usr = User.objects.get(username='******')
     usr.first_name='aklsjfl'
     usr.save()
     
     model_count2 = ModelActionAudit.view("auditcare/model_actions").count()
     total_count2 = AuditEvent.view("auditcare/all_events").count()
             
     self.assertEqual(model_count+1, model_count2)    
     self.assertEqual(total_count+1, total_count2)
Ejemplo n.º 6
0
    def testModifyUser(self):
        model_count = ModelActionAudit.view("auditcare/model_actions_by_id", include_docs=True, reduce=False).count()
        total_count = AuditEvent.view("auditcare/all_events").count()
        
        usr = User.objects.get(username='******')
        usr.first_name='aklsjfl'
        time.sleep(1)
        usr.save()
        time.sleep(1)

        model_count2 = ModelActionAudit.view("auditcare/model_actions_by_id", include_docs=True, reduce=False).count()
        total_count2 = AuditEvent.view("auditcare/all_events").count()
                
        self.assertEqual(model_count+1, model_count2)    
        self.assertEqual(total_count+1, total_count2)
Ejemplo n.º 7
0
    def testModifyUser(self):
        model_count = ModelActionAudit.view("auditcare/model_actions_by_id", include_docs=True, reduce=False).count()
        total_count = AuditEvent.view("auditcare/all_events").count()
        
        usr = User.objects.get(username='******')
        usr.first_name='aklsjfl'
        time.sleep(1)
        usr.save()
        time.sleep(1)

        model_count2 = ModelActionAudit.view("auditcare/model_actions_by_id", include_docs=True, reduce=False).count()
        total_count2 = AuditEvent.view("auditcare/all_events").count()
                
        self.assertEqual(model_count+1, model_count2)    
        self.assertEqual(total_count+1, total_count2)
Ejemplo n.º 8
0
    def _createUser(self):
        model_count = ModelActionAudit.view("auditcare/model_actions_by_id", include_docs=True, reduce=False).count()
        total_count = AuditEvent.view("auditcare/all_events").count()
        
        usr = User()
        usr.username = '******'
        usr.set_password('mockmock')
        usr.first_name='mocky'
        usr.last_name = 'mock'
        usr.save()

        model_count2 = ModelActionAudit.view("auditcare/model_actions_by_id", include_docs=True, reduce=False).count()
        total_count2 = AuditEvent.view("auditcare/all_events").count()
        
        self.assertEqual(model_count+1, model_count2)    
        self.assertEqual(total_count+1, total_count2)
Ejemplo n.º 9
0
    def _createUser(self):
        model_count = ModelActionAudit.view("auditcare/model_actions_by_id", include_docs=True, reduce=False).count()
        total_count = AuditEvent.view("auditcare/all_events").count()
        
        usr = User()
        usr.username = '******'
        usr.set_password('mockmock')
        usr.first_name='mocky'
        usr.last_name = 'mock'
        usr.save()

        model_count2 = ModelActionAudit.view("auditcare/model_actions_by_id", include_docs=True, reduce=False).count()
        total_count2 = AuditEvent.view("auditcare/all_events").count()
        
        self.assertEqual(model_count+1, model_count2)    
        self.assertEqual(total_count+1, total_count2)
Ejemplo n.º 10
0
    def _createUser(self):
        model_count = ModelActionAudit.view("auditcare/model_actions_by_id", include_docs=True, reduce=False).count()
        total_count = AuditEvent.view("auditcare/all_events").count()

        usr = User()
        usr.username = "******"
        usr.set_password("mockmock")
        usr.first_name = "mocky"
        usr.last_name = "mock"
        usr.email = "*****@*****.**"
        usr.save()

        self.user = usr

        model_count2 = ModelActionAudit.view("auditcare/model_actions_by_id", include_docs=True, reduce=False).count()
        total_count2 = AuditEvent.view("auditcare/all_events").count()

        self.assertEqual(model_count + 1, model_count2)
        self.assertEqual(total_count + 1, total_count2)
        return usr
Ejemplo n.º 11
0
    def _createUser(self):
        model_count = ModelActionAudit.view("auditcare/model_actions").count()
        total_count = AuditEvent.view("auditcare/all_events").count()

        usr = User()
        usr.username = '******'
        usr.set_password('mockmock')
        usr.first_name='mocky'
        usr.last_name = 'mock'
        usr.email = '*****@*****.**'
        usr.save()

        self.user = usr

        model_count2 = ModelActionAudit.view("auditcare/model_actions").count()
        total_count2 = AuditEvent.view("auditcare/all_events").count()

        self.assertEqual(model_count+1, model_count2)
        self.assertEqual(total_count+1, total_count2)
        return usr