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('*****@*****.**')
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())
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', )
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())
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())
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', )
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)
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)
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)
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', )
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')
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')
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)