summaryrefslogtreecommitdiff
path: root/wsmeext/tests/test_sqlalchemy_controllers.py
diff options
context:
space:
mode:
authorJim Rollenhagen <jim@jimrollenhagen.com>2019-09-26 09:43:27 -0400
committerJim Rollenhagen <jim@jimrollenhagen.com>2019-09-26 09:43:27 -0400
commite9c6edfe510f4ed407f8d2d84b4b931a382b48b3 (patch)
tree94bbd6a34bcf09e99f7ae1be88b19960192d6adb /wsmeext/tests/test_sqlalchemy_controllers.py
parent1d73d6e50411ebc45fb96a6ed3c63ca91a500323 (diff)
downloadwsme-master.tar.gz
Retire github mirror, repo moved to opendevHEADmaster
Diffstat (limited to 'wsmeext/tests/test_sqlalchemy_controllers.py')
-rw-r--r--wsmeext/tests/test_sqlalchemy_controllers.py223
1 files changed, 0 insertions, 223 deletions
diff --git a/wsmeext/tests/test_sqlalchemy_controllers.py b/wsmeext/tests/test_sqlalchemy_controllers.py
deleted file mode 100644
index 1956788..0000000
--- a/wsmeext/tests/test_sqlalchemy_controllers.py
+++ /dev/null
@@ -1,223 +0,0 @@
-import datetime
-
-try:
- import json
-except ImportError:
- import simplejson as json
-
-from webtest import TestApp
-
-from sqlalchemy.ext.declarative import declarative_base
-from sqlalchemy import Column, Integer, Unicode, Date, ForeignKey
-from sqlalchemy.orm import relation
-
-from sqlalchemy import create_engine
-from sqlalchemy.orm import sessionmaker, scoped_session
-
-from wsme import WSRoot
-import wsme.types
-
-from wsmeext.sqlalchemy.types import generate_types
-from wsmeext.sqlalchemy.controllers import CRUDController
-
-from six import u
-
-engine = create_engine('sqlite:///')
-DBSession = scoped_session(sessionmaker(autocommit=False, autoflush=False,
- bind=engine))
-DBBase = declarative_base()
-
-registry = wsme.types.Registry()
-
-
-class DBPerson(DBBase):
- __tablename__ = 'person'
-
- id = Column(Integer, primary_key=True)
- name = Column(Unicode(50))
- birthdate = Column(Date)
-
- addresses = relation('DBAddress')
-
-
-class DBAddress(DBBase):
- __tablename__ = 'address'
-
- id = Column(Integer, primary_key=True)
-
- _person_id = Column('person_id', ForeignKey(DBPerson.id))
-
- street = Column(Unicode(50))
- city = Column(Unicode(50))
-
- person = relation(DBPerson)
-
-
-globals().update(
- generate_types(DBPerson, DBAddress, makename=lambda s: s[2:],
- registry=registry))
-
-
-class PersonController(CRUDController):
- __saclass__ = DBPerson
- __dbsession__ = DBSession
- __registry__ = registry
-
-
-class AddressController(CRUDController):
- __saclass__ = DBAddress
- __dbsession__ = DBSession
- __registry__ = registry
-
-
-class Root(WSRoot):
- __registry__ = registry
-
- person = PersonController()
- address = AddressController()
-
-
-class TestCRUDController():
- def setUp(self):
- DBBase.metadata.create_all(DBSession.bind)
-
- self.root = Root()
- self.root.getapi()
- self.root.addprotocol('restjson')
-
- self.app = TestApp(self.root.wsgiapp())
-
- def tearDown(self):
- DBBase.metadata.drop_all(DBSession.bind)
-
- def test_create(self):
- data = dict(data=dict(
- name=u('Pierre-Joseph'),
- birthdate=u('1809-01-15')
- ))
- r = self.app.post('/person/create', json.dumps(data),
- headers={'Content-Type': 'application/json'})
- r = json.loads(r.text)
- print(r)
- assert r['name'] == u('Pierre-Joseph')
- assert r['birthdate'] == u('1809-01-15')
-
- def test_PUT(self):
- data = dict(data=dict(
- name=u('Pierre-Joseph'),
- birthdate=u('1809-01-15')
- ))
- r = self.app.put('/person', json.dumps(data),
- headers={'Content-Type': 'application/json'})
- r = json.loads(r.text)
- print(r)
- assert r['name'] == u('Pierre-Joseph')
- assert r['birthdate'] == u('1809-01-15')
-
- def test_read(self):
- p = DBPerson(
- name=u('Pierre-Joseph'),
- birthdate=datetime.date(1809, 1, 15))
- DBSession.add(p)
- DBSession.flush()
- pid = p.id
- r = self.app.post('/person/read', '{"ref": {"id": %s}}' % pid,
- headers={'Content-Type': 'application/json'})
- r = json.loads(r.text)
- print(r)
- assert r['name'] == u('Pierre-Joseph')
- assert r['birthdate'] == u('1809-01-15')
-
- def test_GET(self):
- p = DBPerson(
- name=u('Pierre-Joseph'),
- birthdate=datetime.date(1809, 1, 15))
- DBSession.add(p)
- DBSession.flush()
- pid = p.id
- r = self.app.get('/person?ref.id=%s' % pid,
- headers={'Accept': 'application/json'})
- r = json.loads(r.text)
- print(r)
- assert r['name'] == u('Pierre-Joseph')
- assert r['birthdate'] == u('1809-01-15')
-
- def test_GET_bad_accept(self):
- p = DBPerson(
- name=u('Pierre-Joseph'),
- birthdate=datetime.date(1809, 1, 15))
- DBSession.add(p)
- DBSession.flush()
- pid = p.id
- r = self.app.get('/person?ref.id=%s' % pid,
- headers={'Accept': 'text/plain'},
- status=406)
- assert r.text == ("Unacceptable Accept type: text/plain not in "
- "['application/json', 'text/javascript', "
- "'application/javascript', 'text/xml']")
-
- def test_update(self):
- p = DBPerson(
- name=u('Pierre-Joseph'),
- birthdate=datetime.date(1809, 1, 15))
- DBSession.add(p)
- DBSession.flush()
- pid = p.id
- data = {
- "id": pid,
- "name": u('Pierre-Joseph Proudon')
- }
- r = self.app.post('/person/update', json.dumps(dict(data=data)),
- headers={'Content-Type': 'application/json'})
- r = json.loads(r.text)
- print(r)
- assert r['name'] == u('Pierre-Joseph Proudon')
- assert r['birthdate'] == u('1809-01-15')
-
- def test_POST(self):
- p = DBPerson(
- name=u('Pierre-Joseph'),
- birthdate=datetime.date(1809, 1, 15))
- DBSession.add(p)
- DBSession.flush()
- pid = p.id
- data = {
- "id": pid,
- "name": u('Pierre-Joseph Proudon')
- }
- r = self.app.post('/person', json.dumps(dict(data=data)),
- headers={'Content-Type': 'application/json'})
- r = json.loads(r.text)
- print(r)
- assert r['name'] == u('Pierre-Joseph Proudon')
- assert r['birthdate'] == u('1809-01-15')
-
- def test_delete(self):
- p = DBPerson(
- name=u('Pierre-Joseph'),
- birthdate=datetime.date(1809, 1, 15))
- DBSession.add(p)
- DBSession.flush()
- pid = p.id
- r = self.app.post('/person/delete', json.dumps(
- dict(ref=dict(id=pid))),
- headers={
- 'Content-Type': 'application/json'
- })
- print(r)
- assert DBSession.query(DBPerson).get(pid) is None
-
- def test_DELETE(self):
- p = DBPerson(
- name=u('Pierre-Joseph'),
- birthdate=datetime.date(1809, 1, 15))
- DBSession.add(p)
- DBSession.flush()
- pid = p.id
- r = self.app.delete('/person?ref.id=%s' % pid,
- headers={'Content-Type': 'application/json'})
- print(r)
- assert DBSession.query(DBPerson).get(pid) is None
-
- def test_nothing(self):
- pass