Пример #1
0
    def setUp(self):
        self.t = Template()

        self.tree = Template()
        a, b, c, d, e, f, g = self.get_some_facts()
        self.tree.add_fact(*a)
        self.tree.add_fact(*b, parent=a)
        self.tree.add_fact(*c, parent=a)
        self.tree.add_fact(*d, parent=a)
        self.tree.add_fact(*e, parent=c)
        self.tree.add_fact(*f, parent=c)
        self.tree.add_fact(*g)
Пример #2
0
import datetime

class Company(object):
	cik = '0000843006'
	url = 'http://issuerdirect.com/'
	ticker = 'isdr'

c1 = make_context(datetime.date(2009, 12, 31))

u1 = Unit('USD', 'iso4217:USD')
u2 = Unit('Shares', 'xbrli:shares')

f1 = Fact(label='AssetsCurrent', namespace='isdr')
f2 = Fact(label='OtherAssetsCurrent', namespace='isdr')
f3 = Fact(with_calc=[(f1, 1), (f2, 1)], label='Assets', namespace='isdr')
  
t = Template()
t.add_context(c1)
t.add_fact(f1, u1, parent=(f3, u1))
t.add_fact(f2, u1, parent=(f3, u1))
t.add_fact(f3, u1)

c = Chart(with_template=t, title='DocumentSomethingOrOther')
c[(f1, u1), c1] = 323555
c[(f2, u1), c1] = 19201
c[(f3, u1), c1] = 465005

f = Filing(with_charts=[c], with_company=Company)

s = Serializer(f)
print s.serialize('Presentation', formatter=lxml_to_text)
Пример #3
0
class TemplateTest(TestCase):
    def setUp(self):
        self.t = Template()

        self.tree = Template()
        a, b, c, d, e, f, g = self.get_some_facts()
        self.tree.add_fact(*a)
        self.tree.add_fact(*b, parent=a)
        self.tree.add_fact(*c, parent=a)
        self.tree.add_fact(*d, parent=a)
        self.tree.add_fact(*e, parent=c)
        self.tree.add_fact(*f, parent=c)
        self.tree.add_fact(*g)

    def get_some_facts(self, cache={}):
        if len(cache):
            return (item for _, item in sorted(cache.items()))
        cache['a'] = m('facta', Fact), m('unita', Unit)
        cache['b'] = m('factb', Fact), m('unitb', Unit)
        cache['c'] = m('factc', Fact), m('unitc', Unit)
        cache['d'] = m('factd', Fact), m('unitd', Unit)
        cache['e'] = m('facte', Fact), m('unite', Unit)
        cache['f'] = m('factf', Fact), m('unitf', Unit)
        cache['g'] = m('factg', Fact), m('unitg', Unit)
        return self.get_some_facts()

    def test_context_methods(self):
        context = m('context', Context)
        context2 = m('context2', Context)
        self.assertEqual(self.t.contexts, [])
        self.t.add_context(context)
        self.assertEqual(self.t.contexts, [context])
        self.t.del_context(context)
        self.assertEqual(self.t.contexts, [])

        self.t.insert_context(0, context)
        self.t.insert_context(0, context2)
        self.assertEqual(self.t.contexts, [context2, context])

        self.t.del_context(0)
        self.assertEqual(self.t.contexts, [context])

    def test_fact_methods(self):
        fact, unit = m('fact', Fact), m('unit', Unit)
        self.assertEqual(self.t.facts, [])
        self.assertEqual(self.t.units, [])
        self.t.add_fact(fact, unit)
        self.assertEqual(self.t.facts, [fact])
        self.assertEqual(self.t.units, [unit])
        self.t.del_fact(fact, unit)
        self.assertEqual(self.t.facts, [])
        self.assertEqual(self.t.units, [])

    def test_find_parent(self):
        a = m('facta', Fact), m('unita', Unit)
        b = m('factb', Fact), m('unitb', Unit)

        self.t.add_fact(*a)
        self.t.add_fact(*b, parent=a)

        self.assertEqual(a, self.t.find_parent(b))
        self.assertEqual(None, self.t.find_parent(a))

    def test_tree_operations(self):
        # Bunch of fact/unit combos
        a, b, c, d, e, f, g = self.get_some_facts()
        self.assertEqual({
            None: [a, g],
            a: [b, c, d],
            c: [e, f]
        }, self.tree.tree)
        self.tree.del_fact(*c)
        self.assertEqual({None: [a, g], a: [b, d, e, f]}, self.tree.tree)
        self.tree.set_parent(*e, parent=None, idx=1)
        self.assertEqual({None: [a, e, g], a: [b, d, f]}, self.tree.tree)

    def test_walk_tree(self):
        # Bunch of fact/unit combos
        a, b, c, d, e, f, g = self.get_some_facts()
        self.assertEqual(
            set([
                (None, a),
                (None, g),
                (a, b),
                (a, c),
                (a, d),
                (c, e),
                (c, f),
            ]), set(self.tree.walk_tree()))

    def test_ordered_yield(self):
        a, b, c, d, e, f, g = self.get_some_facts()
        self.assertEqual(list(self.tree.ordered_yield()),
                         [a, b, c, e, f, d, g])

    def test_get_index(self):
        a, b, c, d, e, f, g = self.get_some_facts()
        self.assertEqual(self.tree.get_index(d), 5)

    def test_insert_fact(self):
        a, b, c, d, e, f, g = self.get_some_facts()
        h = m('facth', Fact), m('unith', Unit)
        self.tree.insert_fact(1, *h)
        self.assertEqual(list(self.tree.ordered_yield()),
                         [a, b, c, e, f, d, h, g])