示例#1
0
def test_create_entry(pytestconfig):
    # cook up a datetime for our calendar entry
    (dt_now, dt_mtg_start, dt_mtg_end) = start_two_hours_from_now()
    dt_cal_start = dt_now - timedelta(10)

    # example script to add X-MAINTNOTE to an ical
    cal = Calendar()
    cal.add('prodid', '-//Maint Note//https://github.com/maint-notification//')
    cal.add('version', '2.0')

    event = xmaintnote.XMaintNoteEvent()

    event.add('summary', 'Maint Note Example')
    event.add('uid', '42')
    event.add('sequence', 1)
    event.add('dtstart', dt_mtg_start)
    event.add('dtend', dt_mtg_end)
    event.add('dtstamp', dt_now)

    organizer = vCalAddress('mailto:[email protected]')
    organizer.params['cn'] = vText('Example NOC')
    event['organizer'] = organizer

    # maintnote stuff
    event.add('x-maintnote-provider', 'example.com')
    event.add('x-maintnote-account', '137.035999173')
    event.add('x-maintnote-maintenance-id', 'WorkOrder-31415')
    event.add('x-maintnote-object-id', 'acme-widgets-as-a-service')
    event.add('x-maintnote-impact', "NO-IMPACT")
    # test the regex
    #event.add('x-maintnote-impact', "GARBAGE");

    if 0:
        organizer = vCalAddress('MAILTO:[email protected]')
        organizer.params['cn'] = vText('Max Rasmussen')
        organizer.params['role'] = vText('CHAIR')
        event['organizer'] = organizer
        event['location'] = vText('Odense, Denmark')
        event['uid'] = '20050115T101010/[email protected]'
        event.add('priority', 5)

        attendee = vCalAddress('MAILTO:[email protected]')
        attendee.params['cn'] = vText('Max Rasmussen')
        attendee.params['ROLE'] = vText('REQ-PARTICIPANT')
        event.add('attendee', attendee, encode=0)

        attendee = vCalAddress('MAILTO:[email protected]')
        attendee.params['cn'] = vText('The Dude')
        attendee.params['ROLE'] = vText('REQ-PARTICIPANT')
        event.add('attendee', attendee, encode=0)

    cal.add_component(event)

    expected_output = pytestconfig.rootdir.join('tests/example.ical')
    assert display(cal) == expected_output.read().strip()
    return (dt_now, dt_mtg_start, dt_mtg_end)


# cook up a datetime for our calendar entry
(dt_now, dt_mtg_start, dt_mtg_end) = start_two_hours_from_now()
dt_cal_start = dt_now - timedelta(10)

# example script to add X-MAINTNOTE to an ical

cal = Calendar()
cal.add('prodid', '-//Maint Note//https://github.com/maint-notification//')
cal.add('version', '2.0')

# either of these work fine
#event = Event()
event = xmaintnote.XMaintNoteEvent()

event.add('summary', 'Maint Note Example')
event.add('uid', '42')
event.add('sequence', 1)
#event.add('dtstart', datetime(2015, 10, 10, 8, 0, 0, tzinfo=pytz.utc))
#event.add('dtend', datetime(2015, 10, 10, 10, 0, 0, tzinfo=pytz.utc))
#event.add('dtstamp', datetime(2015, 10, 10, 0, 10, 0, tzinfo=pytz.utc))
event.add('dtstart', dt_mtg_start)
event.add('dtend', dt_mtg_end)
event.add('dtstamp', dt_now)

organizer = vCalAddress('mailto:[email protected]')
organizer.params['cn'] = vText('Example NOC')
event['organizer'] = organizer
示例#3
0
def test_multiple_objects():
    event = xmaintnote.XMaintNoteEvent()
    event.add('x-maintnote-object-id', 'object1')
    event.add('x-maintnote-object-id', 'object2')
    assert len(event['x-maintnote-object-id']) == 2
示例#4
0
def test_multiple_impacts_raises():
    event = xmaintnote.XMaintNoteEvent()
    event.add('x-maintnote-impact', 'NO-IMPACT')
    with pytest.raises(exc.PropertyError):
        event.add('x-maintnote-impact', 'OUTAGE')