Skip to content

Commit

Permalink
Fixed serial number generation error message when series is undefined.
Browse files Browse the repository at this point in the history
  • Loading branch information
chintal committed Nov 7, 2015
1 parent 62c35a7 commit 448f871
Show file tree
Hide file tree
Showing 2 changed files with 23 additions and 4 deletions.
18 changes: 16 additions & 2 deletions tendril/entityhub/db/controller.py
Expand Up @@ -34,9 +34,20 @@
logger = log.get_logger(__name__, log.DEFAULT)


class SeriesNotFound(Exception):
pass


class SerialNoNotFound(Exception):
pass


@with_db
def get_series_obj(series=None, session=None):
return session.query(SerialNumberSeries).filter_by(series=series).one()
try:
return session.query(SerialNumberSeries).filter_by(series=series).one()
except NoResultFound:
raise SeriesNotFound('Series {0} is not defined.'.format(series))


@with_db
Expand Down Expand Up @@ -75,7 +86,10 @@ def get_serialnos_by_series(series=None, session=None):
def get_serialno_object(sno=None, session=None):
if sno is None:
raise AttributeError("sno cannot be None")
return session.query(SerialNumber).filter_by(sno=sno).one()
try:
return session.query(SerialNumber).filter_by(sno=sno).one()
except NoResultFound:
raise SerialNoNotFound("Serial No {0} not defined.".format(sno))


@with_db
Expand Down
9 changes: 7 additions & 2 deletions tendril/entityhub/serialnos.py
Expand Up @@ -107,9 +107,14 @@ def delete_serialno(sno, recurse=False, session=None):

@with_db
def get_serialno(series=None, efield=None, register=True,
start_seed='100A', session=None):
start_seed='100A', create_series=False, session=None):
series = series.upper()
series_obj = controller.get_series_obj(series=series, session=session)
try:
series_obj = controller.get_series_obj(series=series, session=session)
except controller.SeriesNotFound:
if not create_series:
raise
series_obj = None
if series_obj is not None:
last_seed = series_obj.last_seed
logger.debug("Found last seed for series " + str(series) +
Expand Down

0 comments on commit 448f871

Please sign in to comment.