コード例 #1
0
    def test_contact_prefil_fields_with_logged_user(self):
        create_and_login_user(self.testapp,
                              email='*****@*****.**', email_verified=True)
        res = self.testapp.get('/contact')
        self.assertEqual(res.status, '200 OK')

        res.mustcontain('John')
        res.mustcontain('*****@*****.**')
コード例 #2
0
    def test_backups_import_no_file_to_upload(self):
        create_and_login_user(self.testapp)

        res = self.testapp.post('/backup/import', status=302)
        self.assertEqual(res.status, '302 Found')
        self.assertEqual(res.location, 'http://localhost/backup')

        self.assertEqual(0, Session.query(Password).count())
コード例 #3
0
    def test_backups_import_no_file_to_upload(self):
        create_and_login_user(self.testapp)

        res = self.testapp.post('/backup/import', status=302)
        self.assertEqual(res.status, '302 Found')
        self.assertEqual(res.location, 'http://localhost/backup')

        self.assertEqual(0, Session.query(Password).count())
コード例 #4
0
    def test_contact_prefil_fields_with_logged_user(self):
        create_and_login_user(self.testapp,
                              email='*****@*****.**',
                              email_verified=True)
        res = self.testapp.get('/contact')
        self.assertEqual(res.status, '200 OK')

        res.mustcontain('John')
        res.mustcontain('*****@*****.**')
コード例 #5
0
    def test_backups_export_empty_passwords(self):
        create_and_login_user(self.testapp)

        with freeze_time('2012-01-10'):
            res = self.testapp.get('/backup/export')
            self.assertEqual(res.status, '200 OK')
            self.assertEqual(res.content_type, 'application/yith-library')
            self.assertEqual(self.getUncompressData(res.body), '[]')
            self.assertEqual(
                res.content_disposition,
                'attachment; filename=yith-library-backup-2012-01-10.yith',
            )
コード例 #6
0
    def test_backups_import_empty_file2(self):
        create_and_login_user(self.testapp)

        content = get_gzip_data(text_type('[{}]'))
        res = self.testapp.post(
            '/backup/import', {},
            upload_files=[('passwords-file', 'empty.json', content)],
            status=302)
        self.assertEqual(res.status, '302 Found')
        self.assertEqual(res.location, 'http://localhost/backup')

        self.assertEqual(0, Session.query(Password).count())
コード例 #7
0
    def test_backups_import_empty_file2(self):
        create_and_login_user(self.testapp)

        content = get_gzip_data(text_type('[{}]'))
        res = self.testapp.post('/backup/import', {},
                                upload_files=[('passwords-file', 'empty.json',
                                               content)],
                                status=302)
        self.assertEqual(res.status, '302 Found')
        self.assertEqual(res.location, 'http://localhost/backup')

        self.assertEqual(0, Session.query(Password).count())
コード例 #8
0
    def test_backups_export_empty_passwords(self):
        create_and_login_user(self.testapp)

        with freeze_time('2012-01-10'):
            res = self.testapp.get('/backup/export')
            self.assertEqual(res.status, '200 OK')
            self.assertEqual(res.content_type, 'application/yith-library')
            self.assertEqual(self.getUncompressData(res.body), '[]')
            self.assertEqual(
                res.content_disposition,
                'attachment; filename=yith-library-backup-2012-01-10.yith',
            )
コード例 #9
0
    def test_backups_export_some_passwords(self):
        user_id = create_and_login_user(self.testapp)

        with freeze_time('2012-12-12 12:12:12'):
            password1 = Password(secret='secret1', user_id=user_id)
            password2 = Password(secret='secret2', user_id=user_id)

            with transaction.manager:
                Session.add(password1)
                Session.add(password2)
                Session.flush()

        with freeze_time('2012-01-10'):
            res = self.testapp.get('/backup/export')
            self.assertEqual(res.status, '200 OK')
            self.assertEqual(res.content_type, 'application/yith-library')
            uncompressedData = self.getUncompressData(res.body)
            self.assertEqual(json.loads(uncompressedData), [
                {"account": "", "service": "", "tags": [], "notes": "",
                 "creation": "2012-12-12T12:12:12", "secret": "secret1",
                 "expiration": None, "modification": "2012-12-12T12:12:12"},
                {"account": "", "service": "", "tags": [], "notes": "",
                 "creation": "2012-12-12T12:12:12", "secret": "secret2",
                 "expiration": None, "modification": "2012-12-12T12:12:12"},
            ])
            self.assertEqual(
                res.content_disposition,
                'attachment; filename=yith-library-backup-2012-01-10.yith',
            )
コード例 #10
0
    def test_backups_import_backup_version_0_2(self):
        user_id = create_and_login_user(self.testapp)
        here = os.path.dirname(os.path.abspath(__file__))
        backup_filename = 'sample_v_0_2.yith'
        backup_filepath = os.path.join(here, backup_filename)
        with open(backup_filepath, 'rb') as f:
            data = f.read()
        res = self.testapp.post('/backup/import', {},
                                upload_files=[('passwords-file',
                                               backup_filename, data)],
                                status=302)
        self.assertEqual(res.status, '302 Found')
        self.assertEqual(res.location, 'http://localhost/backup')
        self.assertEqual(2, Session.query(Password).count())
        user = Session.query(User).filter(User.id == user_id).one()
        self.assertEqual(len(user.passwords), 2)
        password1 = user.passwords[0]
        password2 = user.passwords[1]

        self.assertEqual(password1.creation,
                         datetime.datetime(2015, 6, 24, 1, 58, 24))
        self.assertEqual(password1.modification,
                         datetime.datetime(2015, 6, 24, 1, 58, 24))
        self.assertEqual(password1.service, 'service1.example.com')
        self.assertEqual(password1.notes, 'example notes')
        self.assertEqual(password1.tags, ['tag1'])
        self.assertEqual(password1.account, 'foo')
        self.assertEqual(password1.expiration, 2)
        self.assertEqual(
            password1.secret,
            '{"iv":"CdYxmui0B/te1uCa8pDV5Q==","v":1,"iter":1000,"ks":128,'
            '"ts":64,"mode":"ccm","adata":"","cipher":"aes",'
            '"salt":"SvbgVP7609c=","ct":"K2yT6L9gicAXTPc="}',
        )
        self.assertEqual(password1.user_id, user_id)

        password2 = user.passwords[1]

        self.assertEqual(password2.creation,
                         datetime.datetime(2015, 6, 24, 1, 59, 3))
        self.assertEqual(password2.modification,
                         datetime.datetime(2015, 6, 24, 1, 59, 3))
        self.assertEqual(password2.service, 'service2.example.com')
        self.assertEqual(password2.notes, '')
        self.assertEqual(password2.tags, [])
        self.assertEqual(password2.account, 'foo2')
        self.assertEqual(password2.expiration, 0)
        self.assertEqual(
            password2.secret,
            '{"iv":"bLUri+9VlftqhlWdvLHGxQ==","v":1,"iter":1000,"ks":128,'
            '"ts":64,"mode":"ccm","adata":"","cipher":"aes",'
            '"salt":"SvbgVP7609c=","ct":"VMUleXMMjUBbKAcD"}')
        self.assertEqual(password2.user_id, user_id)
コード例 #11
0
 def test_backups_import_good_file(self):
     user_id = create_and_login_user(self.testapp)
     content = get_gzip_data(text_type('[{"secret": "password1"}, {"secret": "password2"}]'))
     res = self.testapp.post(
         '/backup/import', {},
         upload_files=[('passwords-file', 'good.json', content)],
         status=302)
     self.assertEqual(res.status, '302 Found')
     self.assertEqual(res.location, 'http://localhost/backup')
     self.assertEqual(2, Session.query(Password).count())
     user = Session.query(User).filter(User.id == user_id).one()
     self.assertEqual(len(user.passwords), 2)
コード例 #12
0
 def test_backups_import_good_file(self):
     user_id = create_and_login_user(self.testapp)
     content = get_gzip_data(
         text_type('[{"secret": "password1"}, {"secret": "password2"}]'))
     res = self.testapp.post('/backup/import', {},
                             upload_files=[('passwords-file', 'good.json',
                                            content)],
                             status=302)
     self.assertEqual(res.status, '302 Found')
     self.assertEqual(res.location, 'http://localhost/backup')
     self.assertEqual(2, Session.query(Password).count())
     user = Session.query(User).filter(User.id == user_id).one()
     self.assertEqual(len(user.passwords), 2)
コード例 #13
0
    def test_backups_export_some_passwords(self):
        user_id = create_and_login_user(self.testapp)

        with freeze_time('2012-12-12 12:12:12'):
            password1 = Password(secret='secret1', user_id=user_id)
            password2 = Password(secret='secret2', user_id=user_id)

            with transaction.manager:
                Session.add(password1)
                Session.add(password2)
                Session.flush()

        with freeze_time('2012-01-10'):
            res = self.testapp.get('/backup/export')
            self.assertEqual(res.status, '200 OK')
            self.assertEqual(res.content_type, 'application/yith-library')
            uncompressedData = self.getUncompressData(res.body)
            self.assertEqual(json.loads(uncompressedData), [
                {
                    "account": "",
                    "service": "",
                    "tags": [],
                    "notes": "",
                    "creation": "2012-12-12T12:12:12",
                    "secret": "secret1",
                    "expiration": None,
                    "modification": "2012-12-12T12:12:12"
                },
                {
                    "account": "",
                    "service": "",
                    "tags": [],
                    "notes": "",
                    "creation": "2012-12-12T12:12:12",
                    "secret": "secret2",
                    "expiration": None,
                    "modification": "2012-12-12T12:12:12"
                },
            ])
            self.assertEqual(
                res.content_disposition,
                'attachment; filename=yith-library-backup-2012-01-10.yith',
            )
コード例 #14
0
 def test_home_login_user(self):
     create_and_login_user(self.testapp)
     res = self.testapp.get('/')
     self.assertEqual(res.status, '200 OK')
     res.mustcontain('Get your passwords', no='Start using it today')
コード例 #15
0
 def test_home_login_user(self):
     create_and_login_user(self.testapp)
     res = self.testapp.get('/')
     self.assertEqual(res.status, '200 OK')
     res.mustcontain('Get your passwords', no='Start using it today')
コード例 #16
0
 def test_backups_index(self):
     create_and_login_user(self.testapp)
     res = self.testapp.get('/backup')
     self.assertEqual(res.status, '200 OK')
     res.mustcontain('Backup', 'Export passwords', 'Import passwords')
コード例 #17
0
 def test_backups_index(self):
     create_and_login_user(self.testapp)
     res = self.testapp.get('/backup')
     self.assertEqual(res.status, '200 OK')
     res.mustcontain('Backup', 'Export passwords', 'Import passwords')
コード例 #18
0
    def test_backups_import_backup_version_0_2(self):
        user_id = create_and_login_user(self.testapp)
        here = os.path.dirname(os.path.abspath(__file__))
        backup_filename = 'sample_v_0_2.yith'
        backup_filepath = os.path.join(here, backup_filename)
        data = open(backup_filepath, 'rb').read()
        res = self.testapp.post(
            '/backup/import', {},
            upload_files=[('passwords-file', backup_filename, data)],
            status=302)
        self.assertEqual(res.status, '302 Found')
        self.assertEqual(res.location, 'http://localhost/backup')
        self.assertEqual(2, Session.query(Password).count())
        user = Session.query(User).filter(User.id == user_id).one()
        self.assertEqual(len(user.passwords), 2)
        password1 = user.passwords[0]
        password2 = user.passwords[1]

        self.assertEqual(
            password1.creation,
            datetime.datetime(2015, 6, 24, 1, 58, 24)
        )
        self.assertEqual(
            password1.modification,
            datetime.datetime(2015, 6, 24, 1, 58, 24)
        )
        self.assertEqual(password1.service, 'service1.example.com')
        self.assertEqual(password1.notes, 'example notes')
        self.assertEqual(password1.tags, ['tag1'])
        self.assertEqual(password1.account, 'foo')
        self.assertEqual(password1.expiration, 2)
        self.assertEqual(
            password1.secret,
            '{"iv":"CdYxmui0B/te1uCa8pDV5Q==","v":1,"iter":1000,"ks":128,'
            '"ts":64,"mode":"ccm","adata":"","cipher":"aes",'
            '"salt":"SvbgVP7609c=","ct":"K2yT6L9gicAXTPc="}',
        )
        self.assertEqual(password1.user_id, user_id)

        password2 = user.passwords[1]

        self.assertEqual(
            password2.creation,
            datetime.datetime(2015, 6, 24, 1, 59, 3)
        )
        self.assertEqual(
            password2.modification,
            datetime.datetime(2015, 6, 24, 1, 59, 3)
        )
        self.assertEqual(password2.service, 'service2.example.com')
        self.assertEqual(password2.notes, '')
        self.assertEqual(password2.tags, [])
        self.assertEqual(password2.account, 'foo2')
        self.assertEqual(password2.expiration, 0)
        self.assertEqual(
            password2.secret,
            '{"iv":"bLUri+9VlftqhlWdvLHGxQ==","v":1,"iter":1000,"ks":128,'
            '"ts":64,"mode":"ccm","adata":"","cipher":"aes",'
            '"salt":"SvbgVP7609c=","ct":"VMUleXMMjUBbKAcD"}'
        )
        self.assertEqual(password2.user_id, user_id)