import unittest
import transaction

from pyramid import testing

from .core.models import DBSession

# class TestMyViewSuccessCondition(unittest.TestCase):
# 	def setUp(self):
# 		self.config = testing.setUp()
# 		from sqlalchemy import create_engine
# 		engine = create_engine('sqlite://')
# 		from .models import (
# 			Base,
# 			MyModel,
# 		)
# 		DBSession.configure(bind=engine)
# 		Base.metadata.create_all(engine)
# 		with transaction.manager:
# 			model = MyModel(name='one', value=55)
# 			DBSession.add(model)
#
# 	def tearDown(self):
# 		DBSession.remove()
# 		testing.tearDown()
#
# 	def test_passing_view(self):
# 		from .views import my_view
# 		request = testing.DummyRequest()
# 		info = my_view(request)
# 		self.assertEqual(info['one'].name, 'one')
# 		self.assertEqual(info['project'], 'py-shrt-lkr')
#
#
# class TestMyViewFailureCondition(unittest.TestCase):
# 	def setUp(self):
# 		self.config = testing.setUp()
# 		from sqlalchemy import create_engine
# 		engine = create_engine('sqlite://')
# 		DBSession.configure(bind=engine)
#
# 	def tearDown(self):
# 		DBSession.remove()
# 		testing.tearDown()
#
# 	def test_failing_view(self):
# 		from .views import my_view
# 		request = testing.DummyRequest()
# 		info = my_view(request)
# 		self.assertEqual(info.status_int, 500)

##
##
#  Services tests
##

class TestServiceUserSuccessCondition(unittest.TestCase):
	def setUp(self):
		self.config = testing.setUp()
		from sqlalchemy import create_engine
		engine = create_engine('sqlite://')
		DBSession.configure(bind=engine)

	def tearDown(self):
		DBSession.remove()
		testing.tearDown()

	def test_failing_view(self):
		from .core.services import UserService
		print("TEST")
		self.assertEqual(UserService.get_by_id(77), -10, "Yup that works")

