Skip to content

Commit

Permalink
Merge 09b8a8b into 5e0af12
Browse files Browse the repository at this point in the history
  • Loading branch information
bartvanb committed Dec 22, 2022
2 parents 5e0af12 + 09b8a8b commit 10e9543
Show file tree
Hide file tree
Showing 5 changed files with 22 additions and 25 deletions.
5 changes: 2 additions & 3 deletions vantage6-server/tests_server/test_models.py
Expand Up @@ -4,13 +4,12 @@
import datetime

from sqlalchemy.exc import IntegrityError
from sqlalchemy.orm.exc import NoResultFound

from vantage6.server.controller.fixture import load
from vantage6.server.model.base import Database, DatabaseSessionManager
from vantage6.server.globals import PACAKAGE_FOLDER, APPNAME

from vantage6.server import db
from vantage6.server import session
from vantage6.server.model import (
User,
Organization,
Expand Down Expand Up @@ -104,7 +103,7 @@ def test_duplicate_user(self):
user2 = User(username="duplicate-user", email="something-else@org.org")
self.assertRaises(IntegrityError, user2.save)

db.session.remove()
session.session.remove()


class TestCollaborationModel(TestBaseModel):
Expand Down
16 changes: 8 additions & 8 deletions vantage6-server/tests_server/test_resources.py
Expand Up @@ -16,7 +16,7 @@
from vantage6.common import logger_name
from vantage6.common.globals import APPNAME
from vantage6.server.globals import PACAKAGE_FOLDER
from vantage6.server import ServerApp, db
from vantage6.server import ServerApp, session
from vantage6.server.model import (Rule, Role, Organization, User, Node,
Collaboration, Task, Result)
from vantage6.server.model.rule import Scope, Operation
Expand Down Expand Up @@ -91,12 +91,12 @@ def tearDownClass(cls):

@classmethod
def setUp(cls):
# set db.session
# set session.session
DatabaseSessionManager.get_session()

@classmethod
def tearDown(cls):
# unset db.session
# unset session.session
DatabaseSessionManager.clear_session()

def login(self, type_='root'):
Expand Down Expand Up @@ -567,7 +567,7 @@ def test_change_password(self):
"new_password": "A_new_password1"
})
self.assertEqual(result.status_code, 200)
db.session.refresh(user)
session.session.refresh(user)
self.assertTrue(user.check_password("A_new_password1"))

def test_view_rules(self):
Expand Down Expand Up @@ -694,7 +694,7 @@ def test_edit_role(self):
"description": "some description of this role..."
})

db.session.refresh(role)
session.session.refresh(role)
self.assertEqual(result.status_code, HTTPStatus.OK)
self.assertEqual(role.name, "a-different-role-name")
self.assertEqual(role.description, "some description of this role...")
Expand Down Expand Up @@ -1092,7 +1092,7 @@ def test_patch_user_permissions(self):
result = self.app.patch(f'/api/user/{user.id}', headers=headers, json={
'firstname': 'yeah'
})
db.session.refresh(user)
session.session.refresh(user)
self.assertEqual(result.status_code, HTTPStatus.OK)
self.assertEqual("yeah", user.firstname)

Expand All @@ -1103,7 +1103,7 @@ def test_patch_user_permissions(self):
result = self.app.patch(f'/api/user/{user.id}', headers=headers, json={
'firstname': 'whatever'
})
db.session.refresh(user)
session.session.refresh(user)
self.assertEqual(result.status_code, HTTPStatus.OK)
self.assertEqual("whatever", user.firstname)

Expand All @@ -1120,7 +1120,7 @@ def test_patch_user_permissions(self):
'firstname': 'again',
'lastname': 'and again',
})
db.session.refresh(user)
session.session.refresh(user)
self.assertEqual(result.status_code, HTTPStatus.OK)
self.assertEqual("again", user.firstname)
self.assertEqual("and again", user.lastname)
Expand Down
7 changes: 1 addition & 6 deletions vantage6-server/vantage6/server/db.py
Expand Up @@ -31,11 +31,6 @@
module_name = logger_name(__name__)
log = logging.getLogger(module_name)

# DB connection session. This is used by the iPython shell (from db import
# session). It is important to mention that the flask requests obtain their
# session from `g.session` which is initialized on `pre_request`.
session = None


def jsonable(value):
"""Convert a (list of) SQLAlchemy instance(s) to native Python objects."""
Expand All @@ -59,7 +54,7 @@ def jsonable(value):
elif isinstance(column_value, datetime.datetime):
column_value = column_value.isoformat()
elif isinstance(column_value, bytes):
log.debug(f"decoding bytes!")
log.debug("decoding bytes!")
column_value = column_value.decode(STRING_ENCODING)

retval[column] = column_value
Expand Down
15 changes: 7 additions & 8 deletions vantage6-server/vantage6/server/model/base.py
Expand Up @@ -14,7 +14,7 @@
from sqlalchemy.orm.exc import NoResultFound

from vantage6.common import logger_name, Singleton
from vantage6.server import db
from vantage6.server import session


module_name = logger_name(__name__)
Expand Down Expand Up @@ -242,12 +242,11 @@ def get_session():
return g.session
else:
# log.critical('Obtaining non flask session')
if not db.session:
if not session.session:
DatabaseSessionManager.new_session()
# log.critical('WE NEED TO MAKE A NEW ONE')

# print(f'db.session {db.session}')
return db.session
return session.session

@staticmethod
def new_session():
Expand All @@ -259,7 +258,7 @@ def new_session():
# g.session.refresh()
# print('new flask session')
else:
db.session = Database().session_b
session.session = Database().session_b

@staticmethod
def clear_session():
Expand All @@ -268,9 +267,9 @@ def clear_session():
g.session.remove()
# g.session = None
else:
if db.session:
db.session.remove()
db.session = None
if session.session:
session.session.remove()
session.session = None
else:
print('No DB session found to clear!')

Expand Down
4 changes: 4 additions & 0 deletions vantage6-server/vantage6/server/session.py
@@ -0,0 +1,4 @@
# DB connection session. This is used by the iPython shell (from server import
# session). Flask requests obtain their session from `g.session` which is
# initialized on `pre_request`.
session = None

0 comments on commit 10e9543

Please sign in to comment.