File: test_metadata.py

package info (click to toggle)
sprox 0.6.4-1
  • links: PTS, VCS
  • area: main
  • in suites: squeeze
  • size: 480 kB
  • ctags: 1,040
  • sloc: python: 3,235; sh: 20; makefile: 6
file content (97 lines) | stat: -rw-r--r-- 3,062 bytes parent folder | download | duplicates (3)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
from nose.tools import raises, eq_

from sqlalchemy import create_engine
from sqlalchemy.orm import sessionmaker

from sprox.metadata import Metadata, MetadataError, FieldsMetadata, FieldMetadata, EntitiesMetadata
from sprox.saormprovider import SAORMProvider
from sprox.iprovider import IProvider
from sprox.test.base import *

session = None
engine = None
connect = None
trans = None

def setup():
    global session, engine, connect, trans
    session, engine, metadata = setup_database()
#    trans = engine.begin()


class MetadataTest(SproxTest):
    obj = Metadata
    provider = IProvider()

    def setup(self):
        super(MetadataTest, self).setup()
        self.metadata = self.obj(self.provider)

    def test_create(self):
        pass

    @raises(NotImplementedError)
    def test_set_item(self):
        self.metadata['asdf'] = 'asdf'

    @raises(NotImplementedError)
    def test_get_item(self):
        value = self.metadata['asdf']

    @raises(NotImplementedError)
    def test_keys(self):
        value = self.metadata.keys()

class TestMetadata(MetadataTest):pass

class TestFieldsMetadata(MetadataTest):
    def setup(self):
        super(TestFieldsMetadata, self).setup()
        provider = SAORMProvider(engine, metadata=metadata)
        self.metadata = FieldsMetadata(provider, Example)

    def test_get_item(self):
        field = self.metadata['binary']
        eq_(field.name, 'binary')

    @raises(KeyError)
    def test_get_item_key_error(self):
        self.metadata['asdf']

    def test_set_item(self):
        self.metadata['asdf'] = '1234'
        assert self.metadata['asdf'] == '1234'

    @raises(MetadataError)
    def test_set_item_bad(self):
        self.metadata['binary'] = '1234'

    def test_keys(self):
        self.metadata['asdf'] = '1234'
        keys = sorted(self.metadata.keys())
        eq_(keys, ['asdf', 'binary', 'binary', 'blob', 'blob',
                    'boolean', 'boolean', 'cLOB', 'cLOB', 'char',
                    'char', 'created', 'created', 'date', 'date',
                    'dateTime', 'dateTime', 'date_', 'date_', 'datetime_',
                    'datetime_', 'decimal', 'decimal', 'example_id', 'example_id',
                    'float_', 'float_', 'float__', 'float__', 'int_', 'int_', 'integer',
                    'integer', 'interval', 'interval', 'numeric', 'numeric',
                    'password', 'password', 'pickletype',
                    'pickletype', 'smallint', 'smallint', 'smalliunteger', 'smalliunteger',
                    'string', 'string', 'text', 'text', 'time', 'time', 'time_', 'time_',
                    'timestamp', 'timestamp', 'unicode_', 'unicode_', 'varchar', 'varchar'])

class TestEntitiesMetadata:
    def setup(self):
        provider = SAORMProvider(engine, metadata=metadata)
        self.metadata = EntitiesMetadata(provider)

    def test_create(self):
        pass

    def test_get_item(self):
        eq_(User, self.metadata['User'])

    @raises(KeyError)
    def test_get_item_not_found(self):
        self.metadata['no_findy']