~doctormo/+junk/css-parser

« back to all changes in this revision

Viewing changes to tests/test_simple.py

  • Committer: Martin Owens
  • Date: 2014-07-13 19:16:11 UTC
  • Revision ID: doctormo@gmail.com-20140713191611-48dkgp1dklvh8bq2
Inital addition of working css files

Show diffs side-by-side

added added

removed removed

Lines of Context:
 
1
#!/usr/bin/python
 
2
#
 
3
# This program is free software; you can redistribute it and/or modify
 
4
# it under the terms of the GNU General Public License as published by
 
5
# the Free Software Foundation; either version 3 of the License, or
 
6
# (at your option) any later version.
 
7
#
 
8
# This program is distributed in the hope that it will be useful,
 
9
# but WITHOUT ANY WARRANTY; without even the implied warranty of
 
10
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 
11
# GNU General Public License for more details.
 
12
#
 
13
# You should have received a copy of the GNU General Public License
 
14
# along with this program; if not, write to the Free Software
 
15
# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
 
16
#
 
17
 
 
18
import os
 
19
import sys
 
20
 
 
21
sys.path.insert(0, '../')
 
22
sys.path.insert(0, '.')
 
23
 
 
24
import unittest
 
25
from css import CssParser
 
26
from property import PropertyObject
 
27
try:
 
28
    from test import test_support
 
29
except ImportError:
 
30
    from test import support as test_support
 
31
 
 
32
 
 
33
class Name(PropertyObject):
 
34
    value = 0
 
35
 
 
36
    def __init__(self, name=None, classes=None):
 
37
        self.sticky = 2
 
38
        if name:
 
39
            self.name = name
 
40
        if classes:
 
41
            self.classes = classes
 
42
 
 
43
 
 
44
class SimpleTestCase(unittest.TestCase):
 
45
    """Test use documentation in css."""
 
46
    def setUp(self):
 
47
        self.css = CssParser("data/test1.css")
 
48
 
 
49
    def test_01_name(self):
 
50
        """Attach by Type Name"""
 
51
        named = Name()
 
52
        self.assertEqual(named.value, 0)
 
53
        self.css.attach(named)
 
54
        self.assertEqual(named.value, 1)
 
55
 
 
56
    def test_02_sticky(self):
 
57
        """Sticky Values"""
 
58
        named = Name()
 
59
        self.assertEqual(named.sticky, 2)
 
60
        self.css.attach(named)
 
61
        self.assertEqual(named.sticky, 2)
 
62
        del named.sticky
 
63
        self.assertEqual(named.sticky, 4)
 
64
 
 
65
    def test_03_id(self):
 
66
        """Attach by Id / Object Name"""
 
67
        named = Name(name="name")
 
68
        self.assertEqual(named.value, 0)
 
69
        self.css.attach(named)
 
70
        self.assertEqual(named.value, 2)
 
71
 
 
72
    def test_04_class(self):
 
73
        """Attach by Single Class"""
 
74
        named = Name(classes=['name'])
 
75
        self.assertEqual(named.value, 0)
 
76
        self.css.attach(named)
 
77
        self.assertEqual(named.value, 3)
 
78
 
 
79
    def test_05_three(self):
 
80
        """Attach All Three"""
 
81
        named = Name(name="name", classes=['name'])
 
82
        self.assertEqual(named.value, 0)
 
83
        self.css.attach(named)
 
84
        self.assertEqual(named.value, 4)
 
85
 
 
86
 
 
87
if __name__ == '__main__':
 
88
    test_support.run_unittest(
 
89
       SimpleTestCase,
 
90
    )