Merge pull request #9 from Meisterschueler/master

ddb import
pull/12/merge
Meisterschueler 2015-11-24 08:30:14 +01:00
commit ac6afd9b4a
3 zmienionych plików z 26 dodań i 9 usunięć

Wyświetl plik

@ -5,15 +5,18 @@ from ogn.collect.celery import app
from ogn.model import Device from ogn.model import Device
from ogn.utils import get_ddb from ogn.utils import get_ddb
from ogn.model.address_origin import AddressOrigin
logger = get_task_logger(__name__) logger = get_task_logger(__name__)
@app.task @app.task
def update_ddb_data(): def update_ddb_from_ogn():
logger.info("Update ddb data.") logger.info("Update ddb data from ogn.")
app.session.query(Device).delete() app.session.query(Device) \
.filter(Device.address_origin == AddressOrigin.ogn_ddb) \
.delete()
devices = get_ddb() devices = get_ddb()
logger.debug("New Devices: %s" % str(devices)) logger.debug("New Devices: %s" % str(devices))
@ -25,10 +28,14 @@ def update_ddb_data():
@app.task @app.task
def import_ddb_data(filename='custom_ddb.txt'): def update_ddb_from_file():
logger.info("Import ddb data from file.") logger.info("Import ddb data from file.")
devices = get_ddb(filename) app.session.query(Device) \
.filter(Device.address_origin == AddressOrigin.userdefined) \
.delete()
devices = get_ddb('ogn/custom_ddb.txt')
app.session.bulk_save_objects(devices) app.session.bulk_save_objects(devices)
app.session.commit() app.session.commit()

Wyświetl plik

@ -3,7 +3,7 @@ from ogn.model import Base
from manager import Manager from manager import Manager
manager = Manager() manager = Manager()
from ogn.collect.fetchddb import update_ddb_data from ogn.collect.fetchddb import update_ddb_from_ogn, update_ddb_from_file
@manager.command @manager.command
@ -15,9 +15,18 @@ def init():
@manager.command @manager.command
def updateddb(): def update_ddb_ogn():
"""Update the ddb data.""" """Update devices with data from ogn."""
print("Updating ddb data...") print("Updating ddb data...")
result = update_ddb_data.delay() result = update_ddb_from_ogn.delay()
counter = result.get()
print("Imported %i devices." % counter)
@manager.command
def update_ddb_file():
"""Update devices with data from local file."""
print("Updating ddb data...")
result = update_ddb_from_file.delay()
counter = result.get() counter = result.get()
print("Imported %i devices." % counter) print("Imported %i devices." % counter)

Wyświetl plik

@ -26,6 +26,7 @@ class GatewayTest(unittest.TestCase):
def test_run_multiple_errors(self, mock_gateway): def test_run_multiple_errors(self, mock_gateway):
instance = mock_gateway.return_value instance = mock_gateway.return_value
instance.run.side_effect = [BrokenPipeError(), socket.error(), KeyboardInterrupt()] instance.run.side_effect = [BrokenPipeError(), socket.error(), KeyboardInterrupt()]
instance.disconnect.side_effect = [True, True, OSError()]
run("user_2") run("user_2")