def post(self): body = load_body(scrap_schema) db = get_scraps_db() doc = Document(db) data = scrap_schema.dump(body).data body = data.pop('body') content_type = data.pop('content_type') doc.update(**data) doc.create() doc.put_attachment('body', content_type, body) return doc
def test_attachment_put(self): """ _test_attachment_put_ """ doc = Document(self.database, "DUCKUMENT") doc_id = 'DUCKUMENT' attachment = 'herpderp.txt' data = '/path/to/herpderp.txt' mock_get = mock.Mock() mock_get.raise_for_status = mock.Mock() mock_get.status_code = 200 mock_get.json = mock.Mock() mock_get.json.return_value = {'_id': doc_id, '_rev': '1-abc'} self.mock_session.get.return_value = mock_get mock_put = mock.Mock() mock_put.raise_for_status = mock.Mock() mock_put.status_code = 201 mock_put.json = mock.Mock() mock_put.json.return_value = {'id': doc_id, 'rev': '2-def', 'ok': True} self.mock_session.put.return_value = mock_put resp = doc.put_attachment( attachment, content_type='text/plain', data=data ) self.assertEqual(resp['id'], doc_id) self.assertTrue(self.mock_session.get.called) self.assertTrue(self.mock_session.put.called)