def setUp(self): a = canyonero.App() self.target = a.app.test_client() self.baseUrl = a.absoluteUrl('/nameset/') self.url = self.baseUrl + 'XTfIPZmASrK89OeK9phOhQ' self.urlBadNameSet = self.baseUrl + 'fail' self.dataContext = DataContext() self.dataContext.beginTransaction()
def setUp(self): a = canyonero.App() self.target = a.app.test_client() urlFormat = '/nameset/{0}/ignore' self.url = a.absoluteUrl(urlFormat.format(ID1)) self.urlBadNameSet = a.absoluteUrl(urlFormat.format('failure')) self.dataContext = DataContext() self.dataContext.beginTransaction()
class TestNameSetIgnore(unittest.TestCase): def setUp(self): a = canyonero.App() self.target = a.app.test_client() urlFormat = '/nameset/{0}/ignore' self.url = a.absoluteUrl(urlFormat.format(ID1)) self.urlBadNameSet = a.absoluteUrl(urlFormat.format('failure')) self.dataContext = DataContext() self.dataContext.beginTransaction() def tearDown(self): self.dataContext.rollBack() # ------------------------------------------------------------------------- # Tests # ------------------------------------------------------------------------- def test_get(self): rv = self.target.get(self.url) self.assertEqual(200, rv.status_code) ignore = json.loads(rv.data.decode('utf-8')) self.assertEqual(31, len(ignore)) def test_get_bad(self): rv = self.target.get(self.urlBadNameSet) self.assertEqual(404, rv.status_code) def test_put_with_calc(self): rv = self.target.get(self.url) rv = self.target.put(self.url + '?recalculate=0', data=rv.data, content_type='application/json') self.assertEqual(204, rv.status_code) ns = self.dataContext[ID1] self.assertEqual(873, len(ns.clusters)) def test_put_without_calc(self): rv = self.target.put(self.url, data=json.dumps(['.', '!']), content_type='application/json') self.assertEqual(205, rv.status_code) ns = self.dataContext[ID1] self.assertEqual(807, len(ns.clusters)) def test_put_bad_nameset(self): rv = self.target.put(self.urlBadNameSet, data={'a': '1'}) self.assertEqual(404, rv.status_code) def test_put_bad_format(self): rv = self.target.put(self.url, data=json.dumps({'a': '1'})) self.assertEqual(400, rv.status_code) def test_delete_without_calc(self): rv = self.target.delete(self.url) self.assertEqual(205, rv.status_code) ns = self.dataContext[ID1] self.assertEqual(807, len(ns.clusters)) def test_delete_with_calc(self): rv = self.target.delete(self.url + '?recalculate=0') self.assertEqual(204, rv.status_code) ns = self.dataContext[ID1] self.assertEqual(1092, len(ns.clusters)) def test_delete_bad(self): rv = self.target.delete(self.urlBadNameSet) self.assertEqual(404, rv.status_code) def test_post(self): rv = self.target.post(self.url, data={'a': '1'}) self.assertEqual(405, rv.status_code)
def setUp(self): a = canyonero.App() self.target = a.app.test_client() self.url = a.absoluteUrl('/nameset') self.dataContext = DataContext() self.dataContext.beginTransaction()
class TestNameSetIndex(unittest.TestCase): def setUp(self): a = canyonero.App() self.target = a.app.test_client() self.url = a.absoluteUrl('/nameset') self.dataContext = DataContext() self.dataContext.beginTransaction() def tearDown(self): self.dataContext.rollBack() def names(self): return ['Echo & The Bunnymen', 'Echo & The Bunnyman', 'Echo and the Bunnymen', 'Echo + the Bunnymen', 'Kool and the Gang' ] # ------------------------------------------------------------------------- # Tests # ------------------------------------------------------------------------- def test_get(self): rv = self.target.get(self.url) self.assertEqual(200, rv.status_code) result = json.loads(rv.data.decode('utf-8')) self.assertEqual(1, len(result)) self.assertIn('link', result[0]) self.assertIn('href', result[0]['link']) self.assertIn(ID1, result[0]['link']['href']) def test_delete(self): rv = self.target.delete(self.url) self.assertEqual(405, rv.status_code) def test_put(self): rv = self.target.put(self.url, data={'a': '1'}) self.assertEqual(405, rv.status_code) def test_post_list(self): data = json.dumps(self.names()) rv = self.target.post(self.url, data=data, content_type='application/json') self.assertEqual(201, rv.status_code) result = json.loads(rv.data.decode('utf-8')) self.assertIn('link', result) self.assertIn('href', result['link']) self.assertIn('id', result) entry = self.dataContext[result['id']] self.assertEqual(2, len(entry.clusters)) def test_post_name_set(self): ns = NameSet('Bands', self.names()) data = json.dumps(ns, cls=ModelEncoder) rv = self.target.post(self.url, data=data, content_type='application/json') self.assertEqual(201, rv.status_code) result = json.loads(rv.data.decode('utf-8')) self.assertIn('link', result) self.assertIn('href', result['link']) self.assertIn('id', result) entry = self.dataContext[result['id']] self.assertEqual(2, len(entry.clusters)) def test_post_bad(self): rv = self.target.post(self.url, data={'a': '1'}) self.assertEqual(400, rv.status_code)
class TestNameClusterIndex(unittest.TestCase): def setUp(self): a = canyonero.App() self.target = a.app.test_client() urlFormat = '/nameset/{0}/cluster' self.url = a.absoluteUrl(urlFormat.format(ID1)) self.urlBadNameSet = a.absoluteUrl(urlFormat.format('failure')) self.dataContext = DataContext() self.dataContext.beginTransaction() def tearDown(self): self.dataContext.rollBack() # ------------------------------------------------------------------------- # Tests # ------------------------------------------------------------------------- def test_get_all(self): rv = self.target.get(self.url + '?all') self.assertEqual(200, rv.status_code) result = json.loads(rv.data.decode('utf-8')) self.assertEqual(807, len(result)) self.assertIn('link', result[0]) self.assertIn('href', result[0]['link']) def test_get_ambiguous(self): rv = self.target.get(self.url) self.assertEqual(200, rv.status_code) result = json.loads(rv.data.decode('utf-8')) self.assertEqual(253, len(result)) self.assertIn('link', result[0]) self.assertIn('href', result[0]['link']) def test_get_bad_name(self): rv = self.target.get(self.urlBadNameSet) self.assertEqual(404, rv.status_code) def test_delete(self): rv = self.target.delete(self.url) self.assertEqual(405, rv.status_code) def test_put(self): rv = self.target.put(self.url, data={'a': '1'}) self.assertEqual(405, rv.status_code) def test_post(self): data = json.dumps('El Em*En.Oh-Pee!') rv = self.target.post(self.url, data=data, content_type='application/json') self.assertEqual(201, rv.status_code) result = json.loads(rv.data.decode('utf-8')) self.assertIn('link', result) self.assertIn('href', result['link']) self.assertIn('elemenohpee', result['link']['href']) self.assertIn('key', result) ns = self.dataContext[ID1] self.assertEqual(808, len(ns.clusters)) self.assertEqual(1255, len(ns.names)) entry = ns.clusters[result['key']] self.assertEqual('El Em*En.Oh-Pee!', entry.canon) self.assertEqual(False, entry.validated) self.assertEqual(1, len(entry.variations)) def test_post_duplicate(self): data = json.dumps('Prasco Laboratories') rv = self.target.post(self.url, data=data, content_type='application/json') self.assertEqual(409, rv.status_code) def test_post_bad_name(self): rv = self.target.post(self.urlBadNameSet, data={'a': '1'}) self.assertEqual(404, rv.status_code)
class TestNameSetDetail(unittest.TestCase): def setUp(self): a = canyonero.App() self.target = a.app.test_client() self.baseUrl = a.absoluteUrl('/nameset/') self.url = self.baseUrl + 'XTfIPZmASrK89OeK9phOhQ' self.urlBadNameSet = self.baseUrl + 'fail' self.dataContext = DataContext() self.dataContext.beginTransaction() def tearDown(self): self.dataContext.rollBack() # ------------------------------------------------------------------------- # Test Helpers # ------------------------------------------------------------------------- def toNameSet(self, rv): return ModelEncoder.decodeNameSet(rv.data.decode('utf-8')) # ------------------------------------------------------------------------- # Tests # ------------------------------------------------------------------------- def test_get(self): rv = self.target.get(self.url) self.assertEqual(200, rv.status_code) ns = self.toNameSet(rv) self.assertEqual('Manufacturers', ns.title) self.assertEqual(1254, len(ns.names)) self.assertEqual(807, len(ns.clusters)) self.assertEqual(31, len(ns.ignore)) self.assertEqual(4, len(ns.abbrev)) def test_get_bad(self): rv = self.target.get(self.urlBadNameSet) self.assertEqual(404, rv.status_code) def test_get_recalculate(self): rv = self.target.get(self.url + '?recalculate=0') self.assertEqual(200, rv.status_code) ns = self.toNameSet(rv) self.assertEqual('Manufacturers', ns.title) self.assertEqual(1254, len(ns.names)) self.assertEqual(873, len(ns.clusters)) self.assertEqual(31, len(ns.ignore)) self.assertEqual(4, len(ns.abbrev)) def test_delete(self): rv = self.target.delete(self.url) self.assertEqual(204, rv.status_code) self.assertEqual(0, len(self.dataContext)) def test_delete_bad(self): rv = self.target.delete(self.urlBadNameSet) self.assertEqual(404, rv.status_code) self.assertEqual(1, len(self.dataContext)) def test_post(self): rv = self.target.post(self.url, data={'a': '1'}) self.assertEqual(405, rv.status_code) def test_put(self): rv = self.target.get(self.url) rv = self.target.put(self.url, data=rv.data, content_type='application/json') self.assertEqual(204, rv.status_code) def test_put_bad_format(self): rv = self.target.put(self.url, data={'a': '1'}) self.assertEqual(400, rv.status_code) def test_put_bad(self): rv = self.target.put(self.urlBadNameSet, data={'a': '1'}) self.assertEqual(404, rv.status_code)