예제 #1
0
def test_get(message):
    ids = message.GetIDsFromNames([MAPINAMEID(b'1234567890123456', MNID_ID, 20)], MAPI_CREATE)
    assert len(ids) == 1
    assert PROP_ID(ids[0]) >= 0x8500
    assert PROP_TYPE(ids[0]) == PT_UNSPECIFIED

    ids = message.GetIDsFromNames([MAPINAMEID(b'1234567890123456', MNID_ID, 20)], 0)
    assert len(ids) == 1
    assert PROP_ID(ids[0]) >= 0x8500
    assert PROP_TYPE(ids[0]) == PT_UNSPECIFIED
예제 #2
0
def test_required_properties(defaultmessage):
    proptags = [
                PR_CREATION_TIME,
                PR_DISPLAY_BCC,
                PR_DISPLAY_CC,
                PR_DISPLAY_TO,
                PR_ENTRYID,
                PR_LAST_MODIFICATION_TIME,
                PR_MESSAGE_ATTACHMENTS,
                PR_MESSAGE_CLASS,
                PR_MESSAGE_FLAGS,
                PR_MESSAGE_RECIPIENTS,
                #  TODO:  Not exist on a open new message, with savechanges
                #  PR_MESSAGE_SIZE,
                #  PR_EC_IMAP_ID,
                PR_NORMALIZED_SUBJECT,
                PR_PARENT_ENTRYID,
                PR_RECORD_KEY,
                PR_SEARCH_KEY,
                PR_STORE_ENTRYID,
                PR_STORE_RECORD_KEY,
                PR_EC_HIERARCHYID
                ]

    results = defaultmessage.GetProps(proptags, 0)
    for i in results:
        assert PROP_TYPE(i.ulPropTag) != PT_ERROR
예제 #3
0
def test_createnew2(message):
    ids = message.GetIDsFromNames([MAPINAMEID(b'1234567890123456', MNID_ID, 5)], MAPI_CREATE)
    assert len(ids) == 1
    assert PROP_ID(ids[0]) >= 0x8500
    assert PROP_TYPE(ids[0]) == PT_UNSPECIFIED

    tag = ids[0]
    ids = message.GetIDsFromNames([MAPINAMEID(b'1234567890123456', MNID_ID, 5)], MAPI_CREATE)
    assert len(ids) == 1
    assert PROP_ID(ids[0]) >= 0x8500
    assert PROP_TYPE(ids[0]) == PT_UNSPECIFIED
    assert tag == ids[0]

    ids = message.GetIDsFromNames([MAPINAMEID(b'1234567890123456', MNID_ID, 6)], MAPI_CREATE)
    assert len(ids) == 1
    assert PROP_ID(ids[0]) >= 0x8500
    assert PROP_TYPE(ids[0]) == PT_UNSPECIFIED
    assert tag != ids[0]
예제 #4
0
def test_copyprops(root, message):
    tags = [
            PROP_TAG(PT_SHORT, 0x6602),
            PROP_TAG(PT_LONG, 0x6603),
            PROP_TAG(PT_FLOAT, 0x6604),
            PROP_TAG(PT_DOUBLE, 0x6605),
            PROP_TAG(PT_CURRENCY, 0x6606),
            PROP_TAG(PT_APPTIME, 0x6607),
            PROP_TAG(PT_BOOLEAN, 0x6608),
            PROP_TAG(PT_LONGLONG, 0x6609),
            PROP_TAG(PT_STRING8, 0x6610),
            PROP_TAG(PT_UNICODE, 0x6611),
            PROP_TAG(PT_SYSTIME, 0x6612),
            PROP_TAG(PT_CLSID, 0x6613),
            PROP_TAG(PT_BINARY, 0x6614)]

    props = [
            SPropValue(PROP_TAG(PT_SHORT, 0x6602), 1),
            SPropValue(PROP_TAG(PT_LONG, 0x6603), 2),
            SPropValue(PROP_TAG(PT_FLOAT, 0x6604), 3),
            SPropValue(PROP_TAG(PT_DOUBLE, 0x6605), 4),
            SPropValue(PROP_TAG(PT_CURRENCY, 0x6606), 5),
            SPropValue(PROP_TAG(PT_APPTIME, 0x6607), 6),
            SPropValue(PROP_TAG(PT_BOOLEAN, 0x6608), True),
            SPropValue(PROP_TAG(PT_LONGLONG, 0x6609), 7),
            SPropValue(PROP_TAG(PT_STRING8, 0x6610), b'string8'),
            SPropValue(PROP_TAG(PT_UNICODE, 0x6611), u'こんにちは'),
            SPropValue(PROP_TAG(PT_SYSTIME, 0x6612), FileTime(120000000000000000)),
            SPropValue(PROP_TAG(PT_CLSID, 0x6613), b'1234567890123456'),
            SPropValue(PROP_TAG(PT_BINARY, 0x6614), b'binary')]

    message.SetProps(props)

    msgnew = root.CreateMessage(None, 0)
    message.CopyProps(tags, 0, None, IID_IMessage, msgnew, 0)
    results = msgnew.GetProps(tags, 0)
    assert results == props

    # move the props
    msgnew = root.CreateMessage(None, 0)
    message.CopyProps(tags, 0, None, IID_IMessage, msgnew, MAPI_MOVE)
    results = msgnew.GetProps(tags, 0)
    assert results == props

    results = message.GetProps(tags, 0)

    for i in results:
        assert PROP_TYPE(i.ulPropTag) == PT_ERROR
예제 #5
0
def test_getreceivefoldertable(store):
    table = store.GetReceiveFolderTable(0)
    table.SetColumns([PR_MESSAGE_CLASS], 0)

    for row in table.QueryRows(0xFFF, 0):
        assert PROP_TYPE(row[0].ulPropTag) == PT_STRING8