-
Notifications
You must be signed in to change notification settings - Fork 2k
/
test_unit.py
63 lines (56 loc) · 2.5 KB
/
test_unit.py
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
import unittest
import pylons
import nose
import ckan.tests as tests
import ckanext.datastore.db as db
class TestTypeGetters(unittest.TestCase):
def test_list(self):
assert db._get_list(None) is None
assert db._get_list([]) == []
assert db._get_list('') == []
assert db._get_list('foo') == ['foo']
assert db._get_list('foo, bar') == ['foo', 'bar']
assert db._get_list('foo_"bar, baz') == ['foo_"bar', 'baz']
assert db._get_list('"foo", "bar"') == ['foo', 'bar']
assert db._get_list(u'foo, bar') == ['foo', 'bar']
assert db._get_list(['foo', 'bar']) == ['foo', 'bar']
assert db._get_list([u'foo', u'bar']) == ['foo', 'bar']
assert db._get_list(['foo', ['bar', 'baz']]) == ['foo', ['bar', 'baz']]
def test_bool(self):
assert db._get_bool(None) is False
assert db._get_bool(False) is False
assert db._get_bool(True) is True
assert db._get_bool('', True) is True
assert db._get_bool('', False) is False
assert db._get_bool('True') is True
assert db._get_bool('False') is False
assert db._get_bool('1') is True
assert db._get_bool('0') is False
assert db._get_bool('on') is True
assert db._get_bool('off') is False
def test_is_valid_field_name(self):
assert db._is_valid_field_name("foo")
assert db._is_valid_field_name("foo bar")
assert db._is_valid_field_name("42")
assert not db._is_valid_field_name('foo"bar')
assert not db._is_valid_field_name('"')
assert db._is_valid_field_name("'")
assert not db._is_valid_field_name("")
assert db._is_valid_field_name("foo%bar")
def test_is_valid_table_name(self):
assert db._is_valid_table_name("foo")
assert db._is_valid_table_name("foo bar")
assert db._is_valid_table_name("42")
assert not db._is_valid_table_name('foo"bar')
assert not db._is_valid_table_name('"')
assert db._is_valid_table_name("'")
assert not db._is_valid_table_name("")
assert not db._is_valid_table_name("foo%bar")
def test_pg_version_check(self):
if not tests.is_datastore_supported():
raise nose.SkipTest("Datastore not supported")
engine = db._get_engine(None,
{'connection_url': pylons.config['sqlalchemy.url']})
connection = engine.connect()
assert db._pg_version_is_at_least(connection, '8.0')
assert not db._pg_version_is_at_least(connection, '10.0')