Browse Source

handle invalid events

pull/287/head
nicfb 3 years ago
parent
commit
8ae5053471
2 changed files with 23 additions and 2 deletions
  1. +11
    -2
      kosmorro/__main__.py
  2. +12
    -0
      kosmorro/exceptions.py

+ 11
- 2
kosmorro/__main__.py View File

@@ -47,6 +47,7 @@ from .exceptions import (
SearchDatesNotGivenError, SearchDatesNotGivenError,
UnavailableFeatureError, UnavailableFeatureError,
OutOfRangeDateError as DateRangeError, OutOfRangeDateError as DateRangeError,
InvalidEventTypeError,
) )
from kosmorro.i18n.utils import _ from kosmorro.i18n.utils import _


@@ -135,6 +136,10 @@ def run():
use_colors, use_colors,
args.show_graph, args.show_graph,
) )
except InvalidEventTypeError as error:
print_stderr(colored(error.msg, "red"))
debug.debug_print(error)
return 7
except InvalidDateRangeError as error: except InvalidDateRangeError as error:
print_stderr(colored(error, "red")) print_stderr(colored(error, "red"))
debug.debug_print(error) debug.debug_print(error)
@@ -258,8 +263,12 @@ def get_search_information(
try: try:
if search_until is None: if search_until is None:
raise SearchDatesNotGivenError raise SearchDatesNotGivenError

event_types = [EventType[event.upper()] for event in requested_events]
try:
event_types = [EventType[event.upper()] for event in requested_events]
except KeyError as error:
raise InvalidEventTypeError(error.args[0])
from_ = parse_date(search_from) from_ = parse_date(search_from)
until = parse_date(search_until) until = parse_date(search_until)
events_list = search_events(event_types, until, from_, timezone) events_list = search_events(event_types, until, from_, timezone)


+ 12
- 0
kosmorro/exceptions.py View File

@@ -19,6 +19,7 @@
from datetime import date from datetime import date
from babel.dates import format_date from babel.dates import format_date
from kosmorro.i18n.utils import _, SHORT_DATE_FORMAT from kosmorro.i18n.utils import _, SHORT_DATE_FORMAT
from kosmorrolib.enum import EventType




class UnavailableFeatureError(RuntimeError): class UnavailableFeatureError(RuntimeError):
@@ -60,6 +61,17 @@ class SearchDatesNotGivenError(RuntimeError):
"Search end date (--until) is required when searching events." "Search end date (--until) is required when searching events."
) )


class InvalidEventTypeError(RuntimeError):
def __init__(self, invalid_event: EventType):
super().__init__()
self.invalid_event = invalid_event
supported_events = ', '.join([event.name for _, event in enumerate(EventType)])
self.msg = _(
"Invalid event type {event}.\nSupported events are {events}."
).format(
event=self.invalid_event,
events=supported_events,
)


class CompileError(RuntimeError): class CompileError(RuntimeError):
def __init__(self, msg): def __init__(self, msg):


Loading…
Cancel
Save