From 506a18886be639d4d172072bbc895addc6ddb5c4 Mon Sep 17 00:00:00 2001 From: Etienne Millon Date: Thu, 18 Dec 2014 16:36:26 +0100 Subject: [PATCH] start AudioAnnotationTestCase --- app/tests.py | 64 ++++++++++++++++++++++++++++++++-------------------- 1 file changed, 39 insertions(+), 25 deletions(-) diff --git a/app/tests.py b/app/tests.py index 2a7bc84..793cb71 100644 --- a/app/tests.py +++ b/app/tests.py @@ -12,7 +12,7 @@ from models import db -class TestCase(TestCase): +class RankoTestCase(TestCase): def create_app(self): return create_app(config_file='conf/testing.py') @@ -23,9 +23,20 @@ def tearDown(self): db.session.remove() # db.drop_all() - def test_home(self): - r = self.client.get('/') - self.assertIn('Upload and review', r.data) + def _login(self, username, password, signup=False): + if signup: + self._signup(username, password) + return self.client.post('/login', data=dict( + username=username, + password=password + ), follow_redirects=True) + + def _signup(self, username, password): + return self.client.post('/signup', data=dict( + username=username, + password=password, + confirm=password + ), follow_redirects=True) def _upload(self, filename, title=None): storage = FileStorage(filename=filename, stream=BytesIO()) @@ -40,6 +51,18 @@ def _new_upload_id(self, filename): docid = self._extract_docid(r) return koremutake.decode(docid) + def _extract_docid(self, r): + m = re.search('/view/(\w+)', r.location) + self.assertIsNotNone(m) + docid = m.group(1) + return docid + + +class DocTestCase(RankoTestCase): + def test_home(self): + r = self.client.get('/') + self.assertIn('Upload and review', r.data) + def test_upload(self): r = self._login('a', 'a', signup=True) r = self._upload('toto.pdf') @@ -139,12 +162,6 @@ def test_annotation(self): d = json.loads(r.data) self.assertNotIn('2', d['data']) - def _extract_docid(self, r): - m = re.search('/view/(\w+)', r.location) - self.assertIsNotNone(m) - docid = m.group(1) - return docid - def test_upload_rev(self): r = self._upload('toto.pdf') docid = self._extract_docid(r) @@ -166,21 +183,6 @@ def test_upload_rev(self): for docb in [docid, docid2]: self.assertIn(docb, r.data) - def _signup(self, username, password): - return self.client.post('/signup', data=dict( - username=username, - password=password, - confirm=password - ), follow_redirects=True) - - def _login(self, username, password, signup=False): - if signup: - self._signup(username, password) - return self.client.post('/login', data=dict( - username=username, - password=password - ), follow_redirects=True) - def _logout(self): return self.client.get('/logout', follow_redirects=True) @@ -328,3 +330,15 @@ def _can_comment_on(self, docid): follow_redirects=True, ) return r.status_code == 200 + +class AudioAnnotationTestCase(RankoTestCase): + def test_create_audio_annotation(self): + self._login('a', 'a', signup=True) + docid = self._new_upload_id('x.mp3') + data = {'doc': docid, + 'start': 1, + 'length': 2, + 'text': "Bla", + } + r = self.client.post(url_for('audioann.audioann_new'), data=data) + self.assert200(r)