def test_process_dict(self):
     trans = HtmlTransformer()
     self.assertEquals('<table class="api_dict"><tr><td>{}</td></tr></table>',
         trans._process({}))
     self.assertEquals('<table class="api_dict">'
         '<tr><td colspan="2">{</td></tr>'
         '<tr><td class="api_dict_key">id</td>'
         '<td class="api_dict_value">int</td></tr>'
         '<tr><td colspan="2">}</td></tr></table>',
         trans._process({'id': int}))
     self.assertEquals('<table class="api_dict">'
         '<tr><td colspan="2">{</td></tr>'
         '<tr><td class="api_dict_key">values</td>'
         '<td class="api_dict_value">'
             '<table class="api_list"><tr><td>[int]</td></tr></table>'
         '</td></tr>'
         '<tr><td colspan="2">}</td></tr></table>',
         trans._process({'values': [int]}))
     self.assertEquals('<table class="api_dict">'
         '<tr><td colspan="2">{</td></tr>'
         '<tr class="api_dict_optional">'
         '<td class="api_dict_key">id<br><span>optional</span></td>'
         '<td class="api_dict_value">int</td></tr>'
         '<tr><td colspan="2">}</td></tr></table>',
         trans._process({Optional('id'): int}))
 def test_process_any_of(self):
     trans = HtmlTransformer()
     self.assertEquals('<table class="api_any_of">'
         '<tr class="api_any_of_case"><td>id</td></tr>'
         '<tr class="api_any_of_separator"><td>OR</td></tr>'
         '<tr class="api_any_of_case"><td>-id</td></tr></table>',
         trans._process(AnyOf('id', '-id')))
     res = trans._process(AnyOf({'id': int}, {'cd': Text}))
     self.assertEquals('<table class="api_any_of">'
             '<tr class="api_any_of_case">'
                 '<td>'
                     '<table class="api_dict">'
                         '<tr><td colspan="2">{</td></tr>'
                         '<tr>'
                             '<td class="api_dict_key">id</td>'
                             '<td class="api_dict_value">int</td>'
                         '</tr>'
                         '<tr><td colspan="2">}</td></tr>'
                     '</table>'
                 '</td>'
             '</tr>'
             '<tr class="api_any_of_separator"><td>OR</td></tr>'
             '<tr class="api_any_of_case">'
                 '<td>'
                     '<table class="api_dict">'
                         '<tr><td colspan="2">{</td></tr>'
                         '<tr>'
                             '<td class="api_dict_key">cd</td>'
                             '<td class="api_dict_value">UserPredicateValidator</td>'
                         '</tr>'
                         '<tr><td colspan="2">}</td></tr>'
                     '</table>'
                 '</td>'
             '</tr>'
         '</table>', res)
 def test_process_list(self):
     trans = HtmlTransformer()
     self.assertEquals('<table class="api_list"><tr><td>[]</td></tr></table>',
         trans._process([]))
     self.assertEquals('<table class="api_list"><tr><td>[int]</td></tr></table>',
         trans._process([1]))
     self.assertEquals('<table class="api_list"><tr><td>[int, int]</td></tr></table>',
         trans._process([1, int]))
    def test_process_scheme(self):
        trans = HtmlTransformer()
        sch = Scheme({})
        res = trans._process(sch)
        self.assertEquals('<table class="api_dict"><tr><td>{}</td></tr></table>', res)

        sch = Scheme({'id': int, Optional('cd'): str})
        res = trans._process(sch)
        self.assertEquals('<table class="api_dict">'
            '<tr><td colspan="2">{</td></tr>'
            '<tr class="api_dict_optional">'
            '<td class="api_dict_key">cd<br><span>optional</span></td><td class="api_dict_value">str</td></tr>'
            '<tr><td class="api_dict_key">id</td><td class="api_dict_value">int</td></tr>'
            '<tr><td colspan="2">}</td></tr></table>', res)
 def test_text(self):
     trans = HtmlTransformer()
     self.assertEquals('Text', trans._process(Text()))
     self.assertEquals('Text', trans._process(Text))
 def test_int(self):
     trans = HtmlTransformer()
     self.assertEquals('int', trans._process(int))