示例#1
0
def test_resource_scheduler(libres_context):
    resource = Resource(id=uuid4())

    with pytest.raises(AssertionError):
        resource.get_scheduler(libres_context)

    resource.timezone = 'Europe/Zurich'

    scheduler = resource.get_scheduler(libres_context)
    scheduler.managed_allocations().count() == 0

    assert scheduler.resource == resource.id
示例#2
0
def test_delete_cascade(session_manager, libres_context):
    resource = Resource(id=uuid4())
    resource.timezone = 'Europe/Zurich'
    resource.name = 'test'
    resource.title = 'Test'

    session = session_manager.session()
    session.add(resource)

    scheduler = resource.get_scheduler(libres_context)
    scheduler.allocate((
        datetime(2015, 6, 11, 8),
        datetime(2015, 6, 11, 18)
    ))

    transaction.commit()
    session.expire_all()

    resource = session.query(Resource).one()
    scheduler = resource.get_scheduler(libres_context)
    assert scheduler.managed_allocations().count() == 1

    session.delete(resource)

    assert scheduler.managed_allocations().count() == 0
示例#3
0
def test_resource_scheduler(libres_context):
    resource = Resource(id=uuid4())

    with pytest.raises(AssertionError):
        resource.get_scheduler(libres_context)

    resource.timezone = 'Europe/Zurich'

    scheduler = resource.get_scheduler(libres_context)
    scheduler.managed_allocations().count() == 0

    assert scheduler.resource == resource.id
示例#4
0
    def add(self, title, timezone, type=None, name=None, meta={}, content={},
            definition=None, group=None):

        # look up the right class depending on the type (we need to do
        # this a bit akwardly here, because Resource does not use the
        # ModelBase as declarative base)
        resource = Resource.get_polymorphic_class(type, Resource)()
        resource.id == uuid4()
        resource.name = name or normalize_for_url(title)
        resource.title = title
        resource.timezone = timezone
        resource.meta = meta
        resource.content = content
        resource.definition = definition
        resource.group = group

        self.session.add(resource)
        self.session.flush()

        return self.bind(resource)
示例#5
0
def test_delete_cascade(session_manager, libres_context):
    resource = Resource(id=uuid4())
    resource.timezone = 'Europe/Zurich'
    resource.name = 'test'
    resource.title = 'Test'

    session = session_manager.session()
    session.add(resource)

    scheduler = resource.get_scheduler(libres_context)
    scheduler.allocate((datetime(2015, 6, 11, 8), datetime(2015, 6, 11, 18)))

    transaction.commit()
    session.expire_all()

    resource = session.query(Resource).one()
    scheduler = resource.get_scheduler(libres_context)
    assert scheduler.managed_allocations().count() == 1

    session.delete(resource)

    assert scheduler.managed_allocations().count() == 0
示例#6
0
def test_scheduler_boundaries(libres_context):
    resource = Resource(id=uuid4())
    resource.timezone = 'Europe/Amsterdam'

    scheduler = resource.get_scheduler(libres_context)
    scheduler.allocate((
        datetime(2015, 6, 11, 8),
        datetime(2015, 6, 11, 18)
    ))

    assert scheduler.managed_allocations().count() == 1

    new_resource = Resource()
    new_resource.id = resource.id
    new_resource.timezone = 'Europe/Amsterdam'

    scheduler = new_resource.get_scheduler(libres_context)

    assert scheduler.managed_allocations().count() == 1

    new_resource = Resource(id=uuid4())
    new_resource.timezone = 'Europe/Amsterdam'
    new_resource.libres_context = libres_context

    scheduler = new_resource.get_scheduler(libres_context)

    assert scheduler.managed_allocations().count() == 0
示例#7
0
def test_scheduler_boundaries(libres_context):
    resource = Resource(id=uuid4())
    resource.timezone = 'Europe/Amsterdam'

    scheduler = resource.get_scheduler(libres_context)
    scheduler.allocate((datetime(2015, 6, 11, 8), datetime(2015, 6, 11, 18)))

    assert scheduler.managed_allocations().count() == 1

    new_resource = Resource()
    new_resource.id = resource.id
    new_resource.timezone = 'Europe/Amsterdam'

    scheduler = new_resource.get_scheduler(libres_context)

    assert scheduler.managed_allocations().count() == 1

    new_resource = Resource(id=uuid4())
    new_resource.timezone = 'Europe/Amsterdam'
    new_resource.libres_context = libres_context

    scheduler = new_resource.get_scheduler(libres_context)

    assert scheduler.managed_allocations().count() == 0