NCCOOS Trac Projects: Top | Web | Platforms | Processing | Viz | Sprints | Sandbox | (Wind)

Changeset 351

Show
Ignore:
Timestamp:
09/01/10 18:16:17
Author:
cbc
Message:

Add some functions and tests to parse module.

Files:

Legend:

Unmodified
Added
Removed
Modified
Copied
Moved
  • spongenet/trunk/spongenet/expand.py

    r348 r351  
    3131 
    3232USAGE = "\n".join(__doc__.splitlines()[3:8]) 
    33 TEST_PATH = "tests/expand" 
     33TEST_PATH = os.path.join("tests", "expand") 
    3434 
    3535 
     
    224224 
    225225    namespace = {} 
    226     namespace["zipdir"] = None 
    227     namespace["xmldir"] = None 
    228     namespace["zipdir_pattern"] = None 
    229     namespace["zipfile_pattern"] = None 
    230     namespace["xmlfile_pattern"] = None 
     226    namespace["ZIPDIR"] = None 
     227    namespace["XMLDIR"] = None 
     228    namespace["ZIPDIR_PATTERN"] = None 
     229    namespace["ZIPFILE_PATTERN"] = None 
     230    namespace["XMLFILE_PATTERN"] = None 
    231231    try: 
    232232        execfile(path, globals(), namespace) 
     
    235235    except SyntaxError: 
    236236        print USAGE 
    237     return (namespace["zipdir"], 
    238             namespace["xmldir"], 
    239             namespace["zipdir_pattern"], 
    240             namespace["zipfile_pattern"], 
    241             namespace["xmlfile_pattern"],) 
     237    return (namespace["ZIPDIR"], 
     238            namespace["XMLDIR"], 
     239            namespace["ZIPDIR_PATTERN"], 
     240            namespace["ZIPFILE_PATTERN"], 
     241            namespace["XMLFILE_PATTERN"],) 
    242242 
    243243 
     
    354354    for zip_month in zip_months: 
    355355        # Create each monthly XML subdirectory. 
    356         xml_month = os.path.join(xmldir, os.path.split(zip_month)[1]
     356        xml_month = os.path.join(xmldir, os.path.basename(zip_month)
    357357        if not os.path.exists(xml_month): 
    358358            os.mkdir(xml_month, 0755) 
     
    370370        for zip_file in zipfiles: 
    371371            # Create an XML subdirectory for each zip file. 
    372             xml_subdir = os.path.splitext(os.path.split(zip_file)[1])[0] 
     372            xml_subdir = os.path.splitext(os.path.basename(zip_file))[0] 
    373373            xml_subdir = os.path.join(xml_month, xml_subdir) 
    374374            if not os.path.exists(xml_subdir): 
  • spongenet/trunk/spongenet/parse.py

    r350 r351  
    2323import os 
    2424import glob 
     25import hashlib 
    2526import doctest 
    2627import unittest 
    2728from StringIO import StringIO 
     29import xml.etree.ElementTree as ET 
    2830 
    2931USAGE = "\n".join(__doc__.splitlines()[3:8]) 
    30 TEST_PATH = "tests/parse" 
     32TEST_PATH = os.path.join("tests", "parse") 
    3133 
    3234 
     
    4850 
    4951 
    50 def doc_path(): 
     52def xmldoc_path(): 
    5153    """ 
    5254    Return the XML document file path from the command line. 
     
    5860    >>> sys.stdout = temp_stdout 
    5961    >>> sys.argv = [] 
    60     >>> _doc_path = doc_path() 
     62    >>> _xmldoc_path = xmldoc_path() 
    6163    >>> sys.stdout = save_stdout 
    6264    >>> USAGE == temp_stdout.getvalue()[:-1] 
     
    6971    >>> sys.stdout = temp_stdout 
    7072    >>> sys.argv = ["", "", "",] 
    71     >>> _doc_path = doc_path() 
     73    >>> _xmldoc_path = xmldoc_path() 
    7274    >>> sys.stdout = save_stdout 
    7375    >>> USAGE == temp_stdout.getvalue()[:-1] 
     
    7981    >>> temp_stdout = StringIO() 
    8082    >>> sys.stdout = temp_stdout 
    81     >>> _doc_path = os.path.join( 
    82     ...                 os.path.dirname( 
    83     ...                     os.path.abspath(__file__)), 
    84     ...                 TEST_PATH) 
    85     >>> sys.argv = ["", _doc_path] 
    86     >>> _doc_path = doc_path() 
     83    >>> _xmldoc_path = os.path.join( 
     84    ...                    os.path.dirname( 
     85    ...                        os.path.abspath(__file__)), 
     86    ...                    TEST_PATH) 
     87    >>> sys.argv = ["", _xmldoc_path] 
     88    >>> _xmldoc_path = xmldoc_path() 
    8789    >>> sys.stdout = save_stdout 
    8890    >>> USAGE == temp_stdout.getvalue()[:-1] 
     
    9496    >>> temp_stdout = StringIO() 
    9597    >>> sys.stdout = temp_stdout 
    96     >>> _doc_path = os.path.join( 
    97     ...                 os.path.dirname( 
    98     ...                     os.path.abspath(__file__)), 
    99     ...                 TEST_PATH, "xxxxx") 
    100     >>> sys.argv = ["", _doc_path] 
    101     >>> _doc_path = doc_path() 
     98    >>> _xmldoc_path = os.path.join( 
     99    ...                    os.path.dirname( 
     100    ...                        os.path.abspath(__file__)), 
     101    ...                    TEST_PATH, "xxxxx") 
     102    >>> sys.argv = ["", _xmldoc_path] 
     103    >>> _xmldoc_path = xmldoc_path() 
    102104    >>> sys.stdout = save_stdout 
    103105    >>> USAGE == temp_stdout.getvalue()[:-1] 
     
    106108    Supply valid XML document path argument. 
    107109 
    108     >>> _doc_path = os.path.join( 
    109     ...                 os.path.dirname( 
    110     ...                     os.path.abspath(__file__)), 
    111     ...                 TEST_PATH, "xml","*","*.xml") 
    112     >>> _doc_path = glob.glob(_doc_path)[0] 
    113     >>> sys.argv = ["", _doc_path] 
    114     >>> _doc_path == doc_path() 
     110    >>> _xmldoc_path = os.path.join( 
     111    ...                    os.path.dirname( 
     112    ...                        os.path.abspath(__file__)), 
     113    ...                    TEST_PATH, "xml","*","*.xml") 
     114    >>> _xmldoc_path = glob.glob(_xmldoc_path)[0] 
     115    >>> sys.argv = ["", _xmldoc_path] 
     116    >>> _xmldoc_path == xmldoc_path() 
    115117    True 
    116118    """ 
     
    136138 
    137139 
     140def xmldoc(path): 
     141    """ 
     142    Return the XML document as a list of strings from a file at path. 
     143 
     144    Get the test reference data. 
     145 
     146    >>> xmlref = os.path.join( 
     147    ...              os.path.dirname( 
     148    ...                  os.path.abspath(__file__)), 
     149    ...               TEST_PATH, "xmlref.py") 
     150    >>> namespace = {} 
     151    >>> execfile(xmlref, globals(), namespace) 
     152    >>> xml_doc_lens = namespace["XML_DOC_LENS"] 
     153    >>> xml_doc_md5s = namespace["XML_DOC_MD5S"] 
     154 
     155    Pick a test document. 
     156 
     157    >>> xmldoc_glob = os.path.join( 
     158    ...                   os.path.dirname( 
     159    ...                       os.path.abspath(__file__)), 
     160    ...                   TEST_PATH, "xml","*","*.xml") 
     161    >>> _xmldoc_path = glob.glob(xmldoc_glob)[0] 
     162    >>> _xmldoc = xmldoc(_xmldoc_path) 
     163 
     164    Verify the test document matches the reference data. 
     165 
     166    >>> _xmldoc[0] == '<?xml version="1.0" encoding="utf-8"?>\\n' 
     167    True 
     168    >>> _xmldoc[-1] == '</root>\\n' 
     169    True 
     170    >>> len(_xmldoc) == xml_doc_lens[os.path.basename(_xmldoc_path)] 
     171    True 
     172    >>> doc_hash = hashlib.md5() 
     173    >>> doc_hash.update("".join(_xmldoc)) 
     174    >>> doc_hash.hexdigest() == xml_doc_md5s[os.path.basename(_xmldoc_path)] 
     175    True 
     176    """ 
     177 
     178    _xmldoc = None 
     179    with open(path) as handle: 
     180        _xmldoc = handle.readlines() 
     181 
     182    return _xmldoc 
     183 
     184 
    138185def _main(): 
    139186    """ 
     
    145192    """ 
    146193 
    147     _doc_path = doc_path() 
    148     if _doc_path: 
    149         print _doc_path 
     194    _xmldoc_path = xmldoc_path() 
     195    if _xmldoc_path: 
     196        _xmldoc = xmldoc(_xmldoc_path) 
     197        print len(_xmldoc) 
    150198 
    151199    return 
  • spongenet/trunk/spongenet/tests/expand/bad_config.py

    r344 r351  
    55import os 
    66 
    7 zipdir = os.path.join(os.path.dirname(os.path.abspath(__file__)), 
    8                       "tests/expand/zip") 
    9 xmldir = os.path.join(os.path.dirname(os.path.abspath(__file__)), 
    10                       "tests/expand/xml") 
     7EXPAND_TEST_PATH = os.path.join("tests", "expand") 
     8 
     9ZIPDIR = os.path.join(os.path.dirname(os.path.abspath(__file__)), 
     10                      EXPAND_TEST_PATH, "zip") 
     11XMLDIR = os.path.join(os.path.dirname(os.path.abspath(__file__)), 
     12                      EXPAND_TEST_PATH, "xml") 
    1113# The next line has a SyntaxError 
    12 zipdir_pattern = "[0-9][0-9][0-9][0-9]_[0-9][0-9] 
    13 zipfile_pattern = "[0-9][0-9][0-9][0-9][0-9][0-9][0-9][0-9]T" \ 
     14ZIPDIR_PATTERN = "[0-9][0-9][0-9][0-9]_[0-9][0-9] 
     15ZIPFILE_PATTERN = "[0-9][0-9][0-9][0-9][0-9][0-9][0-9][0-9]T" \ 
    1416                  "[0-9][0-9][0-9][0-9][0-9][0-9]-" \ 
    1517                  "[0-9][0-9][0-9][0-9][0-9][0-9][0-9][0-9]T" \ 
    1618                  "[0-9][0-9][0-9][0-9][0-9][0-9].zip" 
    17 xmlfile_pattern = "[0-9][0-9][0-9][0-9][0-9][0-9][0-9][0-9]T" \ 
     19XMLFILE_PATTERN = "[0-9][0-9][0-9][0-9][0-9][0-9][0-9][0-9]T" \ 
    1820                  "[0-9][0-9][0-9][0-9][0-9][0-9].xml" 
  • spongenet/trunk/spongenet/tests/expand/config.py

    r344 r351  
    55import os 
    66 
    7 zipdir = os.path.join(os.path.dirname(os.path.abspath(__file__)), 
    8                       "tests/expand/zip") 
    9 xmldir = os.path.join(os.path.dirname(os.path.abspath(__file__)), 
    10                       "tests/expand/xml") 
    11 zipdir_pattern = "[0-9][0-9][0-9][0-9]_[0-9][0-9]" 
    12 zipfile_pattern = "[0-9][0-9][0-9][0-9][0-9][0-9][0-9][0-9]T" \ 
     7EXPAND_TEST_PATH = os.path.join("tests", "expand") 
     8 
     9ZIPDIR = os.path.join(os.path.dirname(os.path.abspath(__file__)), 
     10                      EXPAND_TEST_PATH, "zip") 
     11XMLDIR = os.path.join(os.path.dirname(os.path.abspath(__file__)), 
     12                      EXPAND_TEST_PATH, "xml") 
     13ZIPDIR_PATTERN = "[0-9][0-9][0-9][0-9]_[0-9][0-9]" 
     14ZIPFILE_PATTERN = "[0-9][0-9][0-9][0-9][0-9][0-9][0-9][0-9]T" \ 
    1315                  "[0-9][0-9][0-9][0-9][0-9][0-9]-" \ 
    1416                  "[0-9][0-9][0-9][0-9][0-9][0-9][0-9][0-9]T" \ 
    1517                  "[0-9][0-9][0-9][0-9][0-9][0-9].zip" 
    16 xmlfile_pattern = "[0-9][0-9][0-9][0-9][0-9][0-9][0-9][0-9]T" \ 
     18XMLFILE_PATTERN = "[0-9][0-9][0-9][0-9][0-9][0-9][0-9][0-9]T" \ 
    1719                  "[0-9][0-9][0-9][0-9][0-9][0-9].xml"