def test_data_deduplication(s3_db, raw_message): from inbox.models import Namespace default_namespace = s3_db.session.query(Namespace).get(1) thread = add_fake_thread(s3_db.session, default_namespace.id) msg = new_message_from_synced(s3_db, default_namespace.account, raw_message) msg.thread = thread s3_db.session.add(msg) s3_db.session.commit() account = add_fake_account(s3_db.session) thread = add_fake_thread(s3_db.session, account.namespace.id) duplicate_msg = new_message_from_synced(s3_db, account, raw_message) duplicate_msg.thread = thread s3_db.session.add(duplicate_msg) s3_db.session.commit() assert len(msg.parts) == len(duplicate_msg.parts) for i in range(len(msg.parts)): msg_block = msg.parts[i].block duplicate_msg_block = duplicate_msg.parts[i].block assert msg_block.namespace_id == msg.namespace_id assert duplicate_msg_block.namespace_id == duplicate_msg.namespace_id assert msg_block.size == duplicate_msg_block.size assert msg_block.data_sha256 == duplicate_msg_block.data_sha256 assert msg_block.data == duplicate_msg_block.data
def test_data_deduplication(db, default_namespace, raw_message): thread = add_fake_thread(db.session, default_namespace.id) msg = new_message_from_synced(db, default_namespace.account, raw_message) msg.thread = thread db.session.add(msg) db.session.commit() account = add_fake_account(db.session) thread = add_fake_thread(db.session, account.namespace.id) duplicate_msg = new_message_from_synced(db, account, raw_message) duplicate_msg.thread = thread db.session.add(duplicate_msg) db.session.commit() assert len(msg.parts) == len(duplicate_msg.parts) for i in range(len(msg.parts)): msg_block = msg.parts[i].block duplicate_msg_block = duplicate_msg.parts[i].block assert msg_block.namespace_id == msg.namespace_id assert duplicate_msg_block.namespace_id == duplicate_msg.namespace_id assert msg_block.size == duplicate_msg_block.size assert msg_block.data_sha256 == duplicate_msg_block.data_sha256 assert msg_block.data == duplicate_msg_block.data
def stub_message_from_raw(db, raw_message): namespace_id = default_namespace(db).id new_msg = new_message_from_synced(db, default_namespace(db).account, raw_message) fake_thread = add_fake_thread(db.session, namespace_id) new_msg.thread = fake_thread db.session.add_all([new_msg, fake_thread]) db.session.commit() return new_msg
def test_message_from_synced(db, default_account, default_namespace, raw_message): m = new_message_from_synced(db, default_account, raw_message) assert m.namespace_id == default_namespace.id assert sorted(m.to_addr) == [[u'', u'*****@*****.**'], [u'', u'*****@*****.**'], [u'', u'*****@*****.**']] assert len(m.parts) == 4 assert 'Attached Message Part' in [part.block.filename for part in m.parts] assert all(part.block.namespace_id == m.namespace_id for part in m.parts)
def test_rfc822_format(db, api_client, default_namespace, raw_message): """ Test the API response to retreive raw message contents """ namespace_id = default_namespace.id new_msg = new_message_from_synced(db, default_namespace.account, raw_message) fake_thread = add_fake_thread(db.session, namespace_id) new_msg.thread = fake_thread db.session.add_all([new_msg, fake_thread]) db.session.commit() full_path = api_client.full_path('/messages/{}'.format(new_msg.public_id)) results = api_client.client.get(full_path, headers={'Accept': 'message/rfc822'}) assert results.data == raw_message