1 | ''' |
---|
2 | BSD Licence |
---|
3 | Copyright (c) 2012, Science & Technology Facilities Council (STFC) |
---|
4 | All rights reserved. |
---|
5 | |
---|
6 | Redistribution and use in source and binary forms, with or without modification, |
---|
7 | are permitted provided that the following conditions are met: |
---|
8 | |
---|
9 | * Redistributions of source code must retain the above copyright notice, |
---|
10 | this list of conditions and the following disclaimer. |
---|
11 | * Redistributions in binary form must reproduce the above copyright notice, |
---|
12 | this list of conditions and the following disclaimer in the documentation |
---|
13 | and/or other materials provided with the distribution. |
---|
14 | * Neither the name of the Science & Technology Facilities Council (STFC) |
---|
15 | nor the names of its contributors may be used to endorse or promote |
---|
16 | products derived from this software without specific prior written permission. |
---|
17 | |
---|
18 | THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" |
---|
19 | AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, |
---|
20 | THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR |
---|
21 | PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS |
---|
22 | BE LIABLE FOR AN.__init__Y DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, |
---|
23 | OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF |
---|
24 | SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) |
---|
25 | HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, |
---|
26 | OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE |
---|
27 | OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. |
---|
28 | |
---|
29 | Created on 23 Jul 2012 |
---|
30 | |
---|
31 | @author: mnagni |
---|
32 | ''' |
---|
33 | import unittest |
---|
34 | from json import loads, dumps |
---|
35 | from cedaMoles.MolesManager.views.moles2gui import encodeCedaMoles2Json,\ |
---|
36 | decodeJson2CedaMoles, getData |
---|
37 | from cedaMoles.libs.migration.processor.commons import from_date_string_to_pt |
---|
38 | |
---|
39 | |
---|
40 | class PeriodTest(unittest.TestCase): |
---|
41 | |
---|
42 | |
---|
43 | def setUp(self): |
---|
44 | #molesDB = DbManager(MOLES3_DB_CONNECTION, MOLES3_DB_SCRIPT, sql_echo=True, session_event_manager=EVENTS_DB) |
---|
45 | #moles3Factory = Moles3EPBFactory(molesDB) |
---|
46 | #self.epbRepo = EPBRepo(moles3Factory.createEPB(), None, None) |
---|
47 | pass |
---|
48 | |
---|
49 | def tearDown(self): |
---|
50 | pass |
---|
51 | |
---|
52 | def testValidateTM_Period1(self): |
---|
53 | """ |
---|
54 | Validates a simple encode/decode |
---|
55 | """ |
---|
56 | period = from_date_string_to_pt('2002-07-22/2011-08-06') |
---|
57 | json = encodeCedaMoles2Json(period) |
---|
58 | #----------------------- test ------------------------ |
---|
59 | decJson = loads(json) |
---|
60 | self.assertEqual(decJson['startDate'], '2002-07-22 00:00:00', "Error") |
---|
61 | #----------------------------------------------------- |
---|
62 | |
---|
63 | #----------------------- test ------------------------ |
---|
64 | new_period = decodeJson2CedaMoles(json = json, cedaMoleObj = period) |
---|
65 | self.assertTrue(getData(new_period, 'begin.position.date8601.year') in decJson['startDate'], "decodeJson2CedaMoles Error") |
---|
66 | #----------------------------------------------------- |
---|
67 | |
---|
68 | def testValidateTM_Period2(self): |
---|
69 | """ |
---|
70 | Decodes an updated json object |
---|
71 | """ |
---|
72 | period = from_date_string_to_pt('2002-07-22/2011-08-06') |
---|
73 | json = encodeCedaMoles2Json(period) |
---|
74 | decJson = loads(json) |
---|
75 | decJson['startDate'] = '1980-07-22 00:00:00' |
---|
76 | new_json = dumps(decJson) |
---|
77 | #----------------------- test ---------------------------- |
---|
78 | # Update party.name and test decoding |
---|
79 | new_instant = decodeJson2CedaMoles(json = new_json, cedaMoleObj = period) |
---|
80 | self.assertEqual('1980', getData(new_instant, 'begin.position.date8601.year'), "Error") |
---|
81 | #--------------------------------------------------------- |
---|