예제 #1
0
    def test_can_save_prefs(self):
        user = UserFactory.create(is_superuser=True)

        key1 = KeyFactory.create(name='some.random.1')
        key2 = KeyFactory.create(name='some.random.2')

        UsersViolationsPrefsFactory.create(user=user, key=key1, is_active=True)
        UsersViolationsPrefsFactory.create(user=user, key=key2, is_active=False)

        loaded_prefs = UsersViolationsPrefs.get_prefs(self.db, user)
        expect(loaded_prefs).to_length(2)
        expect(loaded_prefs).to_be_like({
            'some.random.1': True,
            'some.random.2': False
        })

        yield self.authenticated_fetch(
            '/users/violations-prefs/',
            user_email=user.email,
            method='POST',
            body=dumps([
                {'key': 'some.random.1', 'is_active': False},
                {'key': 'some.random.2', 'is_active': True},
            ])
        )

        loaded_prefs = UsersViolationsPrefs.get_prefs(self.db, user)
        expect(loaded_prefs).to_length(2)
        expect(loaded_prefs).to_be_like({
            'some.random.1': False,
            'some.random.2': True
        })
예제 #2
0
    def test_can_get_prefs(self):
        user = UserFactory.create()

        key1 = KeyFactory.create(name='some.random.1')
        key2 = KeyFactory.create(name='some.random.2')

        UsersViolationsPrefsFactory.create(user=user, key=key1, is_active=True)
        UsersViolationsPrefsFactory.create(user=user, key=key2, is_active=False)

        self.server.application.violation_definitions = {
            'some.random.1': {
                'title': 'some random 1',
                'category': 'SEO',
                'generic_description': 'my some random 1'
            },
            'some.random.2': {
                'title': 'some random 2',
                'category': 'HTTP',
                'generic_description': 'my some random 2'
            }
        }

        response = yield self.authenticated_fetch(
            '/users/violations-prefs/',
            user_email=user.email
        )

        expect(response.code).to_equal(200)

        prefs = loads(response.body)

        expect(prefs).to_length(2)
        expect(prefs[0]).to_length(5)
        expect(prefs[1]).to_length(5)

        expect(prefs).to_be_like([{
            'category': 'SEO',
            'is_active': True,
            'name': 'some random 1',
            'key': u'some.random.1',
            'description': u'my some random 1'
        }, {
            'category': 'HTTP',
            'is_active': False,
            'name': 'some random 2',
            'key': u'some.random.2',
            'description': u'my some random 2'
        }])
    def test_can_update_by_user(self):
        user = UserFactory.create()

        key = KeyFactory.create(name='some.random')

        pref = UsersViolationsPrefsFactory.create(user=user,
                                                  key=key,
                                                  is_active=True)

        data = [{
            'key': pref.key.name,
            'is_active': False
        }, {
            'key': 'blah',
            'is_active': False
        }]

        UsersViolationsPrefs.update_by_user(self.db, user, data)

        prefs = self.db.query(UsersViolationsPrefs).all()

        expect(prefs).to_length(1)
        expect(prefs[0].key.name).to_equal(key.name)
        expect(prefs[0].user).to_equal(user)
        expect(prefs[0].is_active).to_equal(False)
    def test_can_update_by_user_with_no_data(self):
        user = UserFactory.create()

        key = KeyFactory.create(name='some.random')

        UsersViolationsPrefsFactory.create(user=user, key=key, is_active=True)

        data = []

        UsersViolationsPrefs.update_by_user(self.db, user, data)

        prefs = self.db.query(UsersViolationsPrefs).all()

        expect(prefs).to_length(1)
        expect(prefs[0].key.name).to_equal(key.name)
        expect(prefs[0].user).to_equal(user)
        expect(prefs[0].is_active).to_equal(True)
    def test_can_update_by_user_with_no_data(self):
        user = UserFactory.create()

        key = KeyFactory.create(name='some.random')

        UsersViolationsPrefsFactory.create(user=user, key=key, is_active=True)

        data = []

        UsersViolationsPrefs.update_by_user(self.db, user, data)

        prefs = self.db.query(UsersViolationsPrefs).all()

        expect(prefs).to_length(1)
        expect(prefs[0].key.name).to_equal(key.name)
        expect(prefs[0].user).to_equal(user)
        expect(prefs[0].is_active).to_equal(True)
    def test_users_violations_prefs_str(self):
        data = UsersViolationsPrefsFactory.create(
            user=User(email='*****@*****.**', fullname='Sherlock Holmes'),
            key=Key(name='some.random.fact'),
            is_active=False)

        loaded = self.db.query(UsersViolationsPrefs).get(data.id)

        expect(str(loaded)).to_be_like('[email protected]: some.random.fact')
    def test_users_violations_prefs_str(self):
        data = UsersViolationsPrefsFactory.create(
            user=User(email='*****@*****.**', fullname='Sherlock Holmes'),
            key=Key(name='some.random.fact'),
            is_active=False
        )

        loaded = self.db.query(UsersViolationsPrefs).get(data.id)

        expect(str(loaded)).to_be_like('[email protected]: some.random.fact')
    def test_can_delete_prefs(self):
        user = UserFactory.create()

        pref1 = UsersViolationsPrefsFactory.create(user=user)
        pref2 = UsersViolationsPrefsFactory.create(user=user)

        prefs = self.db.query(UsersViolationsPrefs).all()
        expect(prefs).to_length(2)

        items = [pref1.key.name]

        UsersViolationsPrefs.delete_prefs(self.db, user, items)

        prefs = self.db.query(UsersViolationsPrefs).all()

        expect(prefs).to_length(1)
        expect(prefs[0].key.name).to_equal(pref2.key.name)
        expect(prefs[0].user).to_equal(pref2.user)
        expect(prefs[0].is_active).to_equal(True)
    def test_can_delete_prefs(self):
        user = UserFactory.create()

        pref1 = UsersViolationsPrefsFactory.create(user=user)
        pref2 = UsersViolationsPrefsFactory.create(user=user)

        prefs = self.db.query(UsersViolationsPrefs).all()
        expect(prefs).to_length(2)

        items = [pref1.key.name]

        UsersViolationsPrefs.delete_prefs(self.db, user, items)

        prefs = self.db.query(UsersViolationsPrefs).all()

        expect(prefs).to_length(1)
        expect(prefs[0].key.name).to_equal(pref2.key.name)
        expect(prefs[0].user).to_equal(pref2.user)
        expect(prefs[0].is_active).to_equal(True)
    def test_can_convert_to_dict(self):
        data = UsersViolationsPrefsFactory.create(
            user=User(email='*****@*****.**', fullname='Sherlock Holmes'),
            key=Key(name='some.random.fact'),
            is_active=False)

        expect(data.to_dict()).to_be_like({
            'user': '******',
            'key': 'some.random.fact',
            'is_active': False
        })
    def test_can_create_users_violations_prefs(self):
        data = UsersViolationsPrefsFactory.create(
            user=User(email='*****@*****.**', fullname='Sherlock Holmes'),
            key=Key(name='some.random.fact'),
            is_active=False)

        loaded = self.db.query(UsersViolationsPrefs).get(data.id)

        expect(loaded.user.email).to_equal('*****@*****.**')
        expect(loaded.key.name).to_equal('some.random.fact')
        expect(loaded.is_active).to_equal(False)
    def test_can_convert_to_dict(self):
        data = UsersViolationsPrefsFactory.create(
            user=User(email='*****@*****.**', fullname='Sherlock Holmes'),
            key=Key(name='some.random.fact'),
            is_active=False
        )

        expect(data.to_dict()).to_be_like({
            'user': '******',
            'key': 'some.random.fact',
            'is_active': False
        })
    def test_can_create_users_violations_prefs(self):
        data = UsersViolationsPrefsFactory.create(
            user=User(email='*****@*****.**', fullname='Sherlock Holmes'),
            key=Key(name='some.random.fact'),
            is_active=False
        )

        loaded = self.db.query(UsersViolationsPrefs).get(data.id)

        expect(loaded.user.email).to_equal('*****@*****.**')
        expect(loaded.key.name).to_equal('some.random.fact')
        expect(loaded.is_active).to_equal(False)
    def test_can_update_by_user(self):
        user = UserFactory.create()

        key = KeyFactory.create(name='some.random')

        pref = UsersViolationsPrefsFactory.create(user=user, key=key, is_active=True)

        data = [
            {'key': pref.key.name, 'is_active': False},
            {'key': 'blah', 'is_active': False}
        ]

        UsersViolationsPrefs.update_by_user(self.db, user, data)

        prefs = self.db.query(UsersViolationsPrefs).all()

        expect(prefs).to_length(1)
        expect(prefs[0].key.name).to_equal(key.name)
        expect(prefs[0].user).to_equal(user)
        expect(prefs[0].is_active).to_equal(False)