pyorg / pyorg / tests / test_parser.py

from attest import Assert, Tests
from pyorg.parser import splitheads, maxhead, Node, parse_tags, \
    parse_properties, parse_date
from datetime import date

tpars = Tests()

H1 = """* Heading 1
text H1
** Heading 1.1
text H1.1
"""
 
H2 = """* Heading 2
text H2
** Heading 2.1
text H2.1
"""

SAMPLE = ''.join([H1,H2])

TAG_SAMPLE = '** Tag sample :tag1:tag2:tag3'

@tpars.test
def test_splitting():
    """Splitting the text in the major sections
    """
    headings = splitheads(SAMPLE)
    Assert(headings[0]) == H1
    Assert(splitheads('')) == []
    Assert(splitheads(H1)) == [H1]

@tpars.test
def test_maxhead():
    Assert(maxhead(SAMPLE)) == 1
    Assert(maxhead(H1)) == 1

@tpars.test
def test_node():
    node = Node(H1)
    Assert(node.headline) == '* Heading 1'
    Assert(node.level) == 1
    
    Assert(node.childs[0].text) == '** Heading 1.1\ntext H1.1'

@tpars.test
def test_parse_tags():
    Assert(parse_tags('** Tag sample :tag1:tag2:tag3:')) == ['tag1', 'tag2', 'tag3']
    Assert(parse_tags('* Tag sample  :tag1:  ')) == ['tag1']
    Assert(parse_tags('* Tag sample   ')) == []

PROP = """
:PROP_1: 5
:PROP_2: 10:00
:SCHEDULE: <2011-01-15>
"""
@tpars.test
def test_parse_props():
    propdict = parse_properties(PROP)
    Assert(propdict['PROP_1']) == '5'
    Assert(propdict['PROP_2']) == '10:00'
    Assert(propdict['SCHEDULE']) == '<2011-01-15>'

@tpars.test
def test_parse_date():
    Assert(parse_date('<2011-01-15 mar>')) == date(2011, 1, 15) 

if __name__ == '__main__':
    tpars.run()
Tip: Filter by directory path e.g. /media app.js to search for public/media/app.js.
Tip: Use camelCasing e.g. ProjME to search for ProjectModifiedEvent.java.
Tip: Filter by extension type e.g. /repo .js to search for all .js files in the /repo directory.
Tip: Separate your search with spaces e.g. /ssh pom.xml to search for src/ssh/pom.xml.
Tip: Use ↑ and ↓ arrow keys to navigate and return to view the file.
Tip: You can also navigate files with Ctrl+j (next) and Ctrl+k (previous) and view the file with Ctrl+o.
Tip: You can also navigate files with Alt+j (next) and Alt+k (previous) and view the file with Alt+o.