#!/usr/bin/python # Licensed to the Apache Software Foundation (ASF) under one # or more contributor license agreements. See the NOTICE file # distributed with this work for additional information # regarding copyright ownership. The ASF licenses this file # to you under the Apache License, Version 2.0 (the # "License"); you may not use this file except in compliance # with the License. You may obtain a copy of the License at # # http://www.apache.org/licenses/LICENSE-2.0 # # Unless required by applicable law or agreed to in writing, # software distributed under the License is distributed on an # "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY # KIND, either express or implied. See the License for the # specific language governing permissions and limitations # under the License. # Test ATOM data conversion functions import unittest from elemutil import * from atomutil import * itemEntry = \ "\n" \ "" \ "item" \ "cart-53d67a61-aa5e-4e5e-8401-39edeba8b83b" \ "" \ "" \ "Apple$2.99" \ "" \ "" \ "" \ "\n" textEntry = \ "\n" \ "" \ "item" \ "cart-53d67a61-aa5e-4e5e-8401-39edeba8b83b" \ "" \ "Apple" \ "" \ "" \ "\n" incompleteEntry = \ "" \ "item" \ "" \ "Orange" \ "3.55" \ "" \ "" \ "" completedEntry = \ "\n" \ "" \ "item" \ "" \ "" \ "" \ "Orange" \ "3.55" \ "" \ "" \ "\n" def testEntry(): i = (element, "'item", (element, "'name", "Apple"), (element, "'price", "$2.99")) a = ((element, "'entry", (element, "'title", "item"), (element, "'id", "cart-53d67a61-aa5e-4e5e-8401-39edeba8b83b"), (element, "'content", i)),) s = writeATOMEntry(a); assert car(s) == itemEntry a2 = readATOMEntry((itemEntry,)) s2 = writeATOMEntry(a2) assert car(s2) == itemEntry a3 = readATOMEntry((textEntry,)) s3 = writeATOMEntry(a3) assert car(s3) == textEntry a4 = readATOMEntry((incompleteEntry,)) s4 = writeATOMEntry(a4) assert car(s4) == completedEntry return True emptyFeed = \ "\n" \ "" \ "Feed" \ "1234" \ "\n" itemFeed = \ "\n" \ "" \ "Feed" \ "1234" \ "" \ "item" \ "cart-53d67a61-aa5e-4e5e-8401-39edeba8b83b" \ "" \ "" \ "Apple$2.99" \ "" \ "" \ "" \ "" \ "" \ "item" \ "cart-53d67a61-aa5e-4e5e-8401-39edeba8b83c" \ "" \ "" \ "Orange$3.55" \ "" \ "" \ "" \ "" \ "\n" def testFeed(): a = ((element, "'feed", (element, "'title", "Feed"), (element, "'id", "1234")),) s = writeATOMFeed(a) assert car(s) == emptyFeed a2 = readATOMFeed((emptyFeed,)) s2 = writeATOMFeed(a2) assert car(s2) == emptyFeed i3 = ((element, "'entry", (element, "'title", "item"), (element, "'id", "cart-53d67a61-aa5e-4e5e-8401-39edeba8b83b"), (element, "'content", (element, "'item", (element, "'name", "Apple"), (element, "'price", "$2.99")))), (element, "'entry", (element, "'title", "item"), (element, "'id", "cart-53d67a61-aa5e-4e5e-8401-39edeba8b83c"), (element, "'content", (element, "'item", (element, "'name", "Orange"), (element, "'price", "$3.55"))))) a3 = (append((element, "'feed", (element, "'title", "Feed"), (element, "'id", "1234")), i3),) s3 = writeATOMFeed(a3) assert car(s3) == itemFeed a4 = readATOMFeed((itemFeed,)); s4 = writeATOMFeed(a4); assert car(s4) == itemFeed a5 = elementsToValues(readATOMFeed((itemFeed,))); s5 = writeATOMFeed(valuesToElements(a5)); assert car(s5) == itemFeed return True if __name__ == "__main__": print "Testing..." testEntry() testFeed() print "OK"