source: geniuswebcore/test/geniusweb/inform/OptInTest.py@ 69

Last change on this file since 69 was 67, checked in by Bart Vastenhouw, 3 years ago

Added SAOP and simplerunner to GeniusWebPython. Several minor fixes.

File size: 2.1 KB
Line 
1from datetime import datetime
2import json
3import unittest
4
5from pyson.ObjectMapper import ObjectMapper
6from uri.uri import URI
7
8from geniusweb.actions.PartyId import PartyId
9from geniusweb.actions.Vote import Vote
10from geniusweb.actions.Votes import Votes
11from geniusweb.inform.Inform import Inform
12from geniusweb.inform.OptIn import OptIn
13from geniusweb.issuevalue.Bid import Bid
14from geniusweb.issuevalue.DiscreteValue import DiscreteValue
15
16
17class OptInTest(unittest.TestCase):
18 maxDiff = None
19
20 bid1 = Bid({"iss": DiscreteValue("val1")})
21 bid2 = Bid({"iss": DiscreteValue("val2")})
22 partyA = PartyId("partyA")
23 partyB = PartyId("partyB")
24 voteA1 = Vote(partyA, bid1, 2, 9)
25 voteB1 = Vote(partyB, bid1, 2, 9)
26 voteB2 = Vote(partyB, bid2, 2, 9)
27
28 votesA = Votes(partyA, set([voteA1]))
29 votesB = Votes(partyB,set([voteB1, voteB2]))
30
31 optIn1 = OptIn([votesA, votesB])
32 optIn1a = OptIn([votesA, votesB])
33 optIn2 = OptIn([votesA])
34 jackson = ObjectMapper();
35
36 asJson="{\"OptIn\":{\"votes\":[{\"Votes\":{\"actor\":\"partyA\",\"votes\":[{\"Vote\":{\"actor\":\"partyA\",\"bid\":{\"issuevalues\":{\"iss\":\"val1\"}},\"minPower\":2,\"maxPower\":9}}]}},{\"Votes\":{\"actor\":\"partyB\",\"votes\":[{\"Vote\":{\"actor\":\"partyB\",\"bid\":{\"issuevalues\":{\"iss\":\"val2\"}},\"minPower\":2,\"maxPower\":9}},{\"Vote\":{\"actor\":\"partyB\",\"bid\":{\"issuevalues\":{\"iss\":\"val1\"}},\"minPower\":2,\"maxPower\":9}}]}}]}}"
37
38 def testGeneralTestData(self) :
39 self.assertEqual(self.optIn1, self.optIn1a)
40 self.assertNotEqual(self.optIn1, self.optIn2)
41 self.assertEqual(hash(self.optIn1), hash(self.optIn1a))
42 self.assertNotEqual(hash(self.optIn1), hash(self.optIn2))
43
44
45 def testSerialize(self):
46 jsonstruct = self.jackson.toJson(self.optIn1)
47 print(jsonstruct)
48 # test does not work, python keeps changing the field order...
49# self.assertEqual(self.bla, jsonstruct)
50
51 def testDeserialize(self):
52 p = self.jackson.parse(json.loads(self.asJson), Inform)
53 print(p);
54 self.assertEqual(self.optIn1, p)
55
Note: See TracBrowser for help on using the repository browser.