Skip to content
Snippets Groups Projects
Commit f993a758 authored by Andreas Hubel's avatar Andreas Hubel
Browse files

schedule support: add local file adapter for tests

parent 8547ace8
No related branches found
No related tags found
No related merge requests found
from collections import OrderedDict from collections import OrderedDict
import json import json
import requests import requests
from requests_file import FileAdapter
from api.views.schedule import filter_additional_data, schedulexml_time_to_timedelta from api.views.schedule import filter_additional_data, schedulexml_time_to_timedelta
from .base import BaseScheduleSupport from .base import BaseScheduleSupport
# from ...api.schedule import Schedule # from ...api.schedule import Schedule
s = requests.Session()
s.mount('file://', FileAdapter())
class ScheduleJSONSupport(BaseScheduleSupport): class ScheduleJSONSupport(BaseScheduleSupport):
identifier = 'schedule-json' identifier = 'schedule-json'
...@@ -15,7 +19,7 @@ class ScheduleJSONSupport(BaseScheduleSupport): ...@@ -15,7 +19,7 @@ class ScheduleJSONSupport(BaseScheduleSupport):
configuration_fields = None configuration_fields = None
def ready(self): def ready(self):
r = requests.head(self.remote_url) r = s.head(self.remote_url)
return r.ok return r.ok
def fetch(self): def fetch(self):
...@@ -74,7 +78,7 @@ class ScheduleJSON: ...@@ -74,7 +78,7 @@ class ScheduleJSON:
@classmethod @classmethod
def from_url(cls, url): def from_url(cls, url):
r = requests.get(url) r = s.get(url)
if r.ok is False: if r.ok is False:
raise Exception('Request failed, HTTP {0}.'.format(r.status_code)) raise Exception('Request failed, HTTP {0}.'.format(r.status_code))
......
from django.utils.dateparse import parse_datetime
import requests
import collections import collections
import datetime import datetime
from django.utils.dateparse import parse_datetime
import requests
from requests_file import FileAdapter
from xml.etree.ElementTree import ElementTree from xml.etree.ElementTree import ElementTree
from api.views.schedule import filter_additional_data, schedulexml_time_to_timedelta from api.views.schedule import filter_additional_data, schedulexml_time_to_timedelta
from .base import BaseScheduleSupport from .base import BaseScheduleSupport
# from ...api.schedule import Schedule
s = requests.Session()
s.mount('file://', FileAdapter())
class ScheduleXMLSupport(BaseScheduleSupport): class ScheduleXMLSupport(BaseScheduleSupport):
...@@ -17,7 +20,7 @@ class ScheduleXMLSupport(BaseScheduleSupport): ...@@ -17,7 +20,7 @@ class ScheduleXMLSupport(BaseScheduleSupport):
configuration_fields = None configuration_fields = None
def ready(self): def ready(self):
r = requests.head(self.remote_url) r = s.head(self.remote_url)
return r.ok return r.ok
def fetch(self): def fetch(self):
...@@ -73,12 +76,11 @@ class ScheduleXML: ...@@ -73,12 +76,11 @@ class ScheduleXML:
tz = None tz = None
def __init__(self, tree): def __init__(self, tree):
# self.tz = pytz.timezone()
self._schedule = tree self._schedule = tree
@classmethod @classmethod
def from_url(cls, url): def from_url(cls, url):
r = requests.get(url) r = s.get(url)
if r.ok is False: if r.ok is False:
raise Exception('Request failed, HTTP {0}.'.format(r.status_code)) raise Exception('Request failed, HTTP {0}.'.format(r.status_code))
......
...@@ -110,7 +110,7 @@ class ScheduleTests(TestCase): ...@@ -110,7 +110,7 @@ class ScheduleTests(TestCase):
src = ScheduleSource.objects.create( src = ScheduleSource.objects.create(
assembly=self.assembly, assembly=self.assembly,
import_type=ScheduleXMLSupport.identifier, import_type=ScheduleXMLSupport.identifier,
import_url='file://import_data/schedule-2021.xml', import_url='file:///import_data/schedule-2021.xml',
) )
self.assertFalse(src.has_running_import) self.assertFalse(src.has_running_import)
...@@ -155,7 +155,7 @@ class ScheduleTests(TestCase): ...@@ -155,7 +155,7 @@ class ScheduleTests(TestCase):
src = ScheduleSource.objects.create( src = ScheduleSource.objects.create(
assembly=self.assembly, assembly=self.assembly,
import_type=ScheduleJSONSupport.identifier, import_type=ScheduleJSONSupport.identifier,
import_url='file://import_data/schedule-2021.json', import_url='file:///import_data/schedule-2021.json',
) )
self.assertFalse(src.has_running_import) self.assertFalse(src.has_running_import)
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment