2
2
import unittest
3
3
from verspec .loose import LooseVersion as Version
4
4
5
+ from mike .jsonpath import Deleted
5
6
from mike .versions import VersionInfo , Versions
6
7
7
8
@@ -11,21 +12,31 @@ def test_create(self):
11
12
self .assertEqual (v .version , Version ('1.0' ))
12
13
self .assertEqual (v .title , '1.0' )
13
14
self .assertEqual (v .aliases , set ())
15
+ self .assertEqual (v .properties , None )
14
16
15
17
v = VersionInfo ('1.0' , '1.0.0' )
16
18
self .assertEqual (v .version , Version ('1.0' ))
17
19
self .assertEqual (v .title , '1.0.0' )
18
20
self .assertEqual (v .aliases , set ())
21
+ self .assertEqual (v .properties , None )
19
22
20
23
v = VersionInfo ('1.0' , aliases = ['latest' ])
21
24
self .assertEqual (v .version , Version ('1.0' ))
22
25
self .assertEqual (v .title , '1.0' )
23
26
self .assertEqual (v .aliases , {'latest' })
27
+ self .assertEqual (v .properties , None )
28
+
29
+ v = VersionInfo ('1.0' , properties = {'prop' : 'val' })
30
+ self .assertEqual (v .version , Version ('1.0' ))
31
+ self .assertEqual (v .title , '1.0' )
32
+ self .assertEqual (v .aliases , set ())
33
+ self .assertEqual (v .properties , {'prop' : 'val' })
24
34
25
35
v = VersionInfo (Version ('1.0' ))
26
36
self .assertEqual (v .version , Version ('1.0' ))
27
37
self .assertEqual (v .title , '1.0' )
28
38
self .assertEqual (v .aliases , set ())
39
+ self .assertEqual (v .properties , None )
29
40
30
41
with self .assertRaisesRegex (ValueError , "^'' is not a valid version$" ):
31
42
VersionInfo ('' )
@@ -58,19 +69,29 @@ def test_equality(self):
58
69
self .assertNotEqual (v , VersionInfo ('1.0' , aliases = ['latest' ]))
59
70
self .assertNotEqual (v , VersionInfo ('1.0.0' ))
60
71
self .assertNotEqual (v , VersionInfo ('1.0.0' , '1.0' ))
72
+ self .assertNotEqual (v , VersionInfo ('1.0' , properties = {'prop' : 'val' }))
61
73
62
74
v = VersionInfo ('1.0' , '1.0.0' )
63
75
self .assertNotEqual (v , VersionInfo ('1.0' ))
64
76
self .assertNotEqual (v , VersionInfo ('1.1' ))
65
77
self .assertEqual (v , VersionInfo ('1.0' , '1.0.0' ))
66
78
self .assertNotEqual (v , VersionInfo ('1.0' , aliases = ['latest' ]))
67
79
self .assertNotEqual (v , VersionInfo ('1.0.0' ))
80
+ self .assertNotEqual (v , VersionInfo ('1.0' , properties = {'prop' : 'val' }))
68
81
69
82
v = VersionInfo ('1.0' , aliases = ['latest' ])
70
83
self .assertNotEqual (v , VersionInfo ('1.0' ))
71
84
self .assertNotEqual (v , VersionInfo ('1.1' ))
72
85
self .assertNotEqual (v , VersionInfo ('1.0' , '1.0.0' ))
73
86
self .assertEqual (v , VersionInfo ('1.0' , aliases = ['latest' ]))
87
+ self .assertNotEqual (v , VersionInfo ('1.0' , properties = {'prop' : 'val' }))
88
+
89
+ v = VersionInfo ('1.0' , properties = {'prop' : 'val' })
90
+ self .assertNotEqual (v , VersionInfo ('1.0' ))
91
+ self .assertNotEqual (v , VersionInfo ('1.1' ))
92
+ self .assertNotEqual (v , VersionInfo ('1.0' , '1.0.0' ))
93
+ self .assertNotEqual (v , VersionInfo ('1.0' , aliases = ['latest' ]))
94
+ self .assertEqual (v , VersionInfo ('1.0' , properties = {'prop' : 'val' }))
74
95
75
96
def test_from_json (self ):
76
97
self .assertEqual (VersionInfo .from_json ({
@@ -81,6 +102,11 @@ def test_from_json(self):
81
102
'version' : '1.0' , 'title' : '1.0.0' , 'aliases' : ['latest' ]
82
103
}), VersionInfo ('1.0' , '1.0.0' , ['latest' ]))
83
104
105
+ self .assertEqual (VersionInfo .from_json ({
106
+ 'version' : '1.0' , 'title' : '1.0.0' , 'aliases' : [],
107
+ 'properties' : {'prop' : 'val' }
108
+ }), VersionInfo ('1.0' , '1.0.0' , [], {'prop' : 'val' }))
109
+
84
110
def test_to_json (self ):
85
111
v = VersionInfo ('1.0' )
86
112
self .assertEqual (v .to_json (), {
@@ -92,6 +118,12 @@ def test_to_json(self):
92
118
'version' : '1.0' , 'title' : '1.0.0' , 'aliases' : ['latest' ]
93
119
})
94
120
121
+ v = VersionInfo ('1.0' , '1.0.0' , [], {'prop' : 'val' })
122
+ self .assertEqual (v .to_json (), {
123
+ 'version' : '1.0' , 'title' : '1.0.0' , 'aliases' : [],
124
+ 'properties' : {'prop' : 'val' }
125
+ })
126
+
95
127
def test_loads (self ):
96
128
self .assertEqual (VersionInfo .loads (
97
129
'{"version": "1.0", "title": "1.0", "aliases": []}'
@@ -127,6 +159,22 @@ def test_update(self):
127
159
"^'foo/bar' is not a valid alias$" ):
128
160
v .update (aliases = ['foo/bar' ])
129
161
162
+ def test_get_property (self ):
163
+ v = VersionInfo ('1.0' , properties = {'prop' : 'val' })
164
+ self .assertEqual (v .get_property ('prop' ), 'val' )
165
+
166
+ v = VersionInfo ('1.0' , properties = {'prop' : ['foo' , 'bar' ]})
167
+ self .assertEqual (v .get_property ('prop[1]' ), 'bar' )
168
+
169
+ def test_set_property (self ):
170
+ v = VersionInfo ('1.0' , properties = {'prop' : 'val' })
171
+ v .set_property ('hello' , 'world' )
172
+ self .assertEqual (v .properties , {'prop' : 'val' , 'hello' : 'world' })
173
+
174
+ v = VersionInfo ('1.0' , properties = {'prop' : ['foo' , 'bar' ]})
175
+ v .set_property ('prop[1]' , Deleted )
176
+ self .assertEqual (v .properties , {'prop' : ['foo' ]})
177
+
130
178
131
179
class TestVersions (unittest .TestCase ):
132
180
def test_add (self ):
0 commit comments