20 from topologylistener
import exc
21 from topologylistener
import config
22 from topologylistener
import isl_utils
23 from topologylistener
import link_props_utils
24 from topologylistener
import message_utils
25 from topologylistener
import messageclasses
26 from topologylistener
import model
38 isl_beta_alpha = isl_alpha_beta.reversed()
41 super(Abstract, self).
setUp()
44 isl_info = share.isl_info_payload(isl)
45 command = share.command(isl_info)
48 def _put(self, subject):
49 request = share.link_props_request(subject)
50 payload = share.link_props_put_payload(request)
54 def _get_kafka_response(self, offset=0, expect_class=message_utils.MT_INFO):
55 kafka_backlog = share.env.kafka_producer_stub.backlog
57 self.assertTrue(offset < len(kafka_backlog))
59 kafka_record = kafka_backlog[offset]
60 self.assertEqual(config.KAFKA_NORTHBOUND_TOPIC, kafka_record.topic)
62 message = json.loads(kafka_record.payload)
63 self.assertEqual(expect_class, message[
'clazz'])
65 return message[
'payload']
72 props={
'cost': 5,
'custom':
'test'})
75 link_props.time_create = model.TimeProperty.new_from_java_timestamp(
76 link_props.time_create.as_java_timestamp() - 100)
85 persistent = link_props_utils.read(tx, link_props)
86 self.assertEquals(link_props, persistent)
90 message_utils.MI_LINK_PROPS_RESPONSE, response[
'clazz'])
91 self.assertIsNone(response[
'error'])
93 encoded_link_props = share.link_props_request(link_props)
94 encoded_link_props = json.loads(json.dumps(encoded_link_props))
95 self.assertEqual(encoded_link_props, response[
'link_props'])
98 unique_value = str(uuid.uuid4())
101 props={
'test': unique_value})
102 self.
_put(link_props)
105 persistent = link_props_utils.read(tx, link_props)
106 self.assertEqual(link_props, persistent)
108 isl_db = isl_utils.fetch(
109 tx, model.InterSwitchLink.new_from_link_props(link_props))
110 tx.graph.pull(isl_db)
111 self.assertEqual(unique_value, isl_db[
'test'])
116 props={
'latency': -2})
117 self.
_put(link_props)
121 message_utils.MI_LINK_PROPS_RESPONSE, response[
'clazz'])
122 self.assertIsNone(response[
'link_props'])
123 self.assertIsNotNone(response[
'error'])
130 self.
_put(link_props)
134 message_utils.MI_LINK_PROPS_RESPONSE, response[
'clazz'])
135 self.assertIsNotNone(response[
'error'])
136 self.assertIsNone(response[
'link_props'])
141 super(TestLinkProps02Occupied, self).
setUp()
145 props={
'cost':
'32',
'name':
'alpha-beta'})
148 props={
'cost':
'96',
'name':
'alpha-gamma'})
151 props={
'cost':
'64',
'name':
'beta-gamma'})
153 self.
_put(alpha_beta)
154 self.
_put(alpha_gamma)
155 self.
_put(beta_gamma)
160 props={
'cost': 1,
'extra':
'new'})
161 self.
_put(link_props)
164 persistent = link_props_utils.read(tx, link_props)
166 {
'cost': 1,
'extra':
'new',
'name':
'alpha-beta'},
175 tx.graph.pull(isl_db)
176 self.assertEqual(
'alpha-beta', isl_db[
'name'])
178 self.
_drop(lookup_mask)
188 tx.graph.pull(isl_db)
189 self.assertNotIn(
'name', isl_db)
194 self.
_drop(lookup_mask)
205 self.
_drop(lookup_mask)
213 expect_class=message_utils.MT_INFO_CHUNKED)
214 self.assertIsNone(response)
217 offset=1, expect_class=message_utils.MT_INFO_CHUNKED)
218 self.assertIsNotNone(response)
220 message_utils.MI_LINK_PROPS_RESPONSE, response[
'clazz'])
221 self.assertIsNone(response[
'link_props'])
222 self.assertIsNotNone(response[
'error'])
224 def _ensure_exists(self, *batch):
226 for subject
in batch:
227 link_props_utils.read(tx, subject)
229 def _ensure_missing(self, *batch):
231 for subject
in batch:
233 link_props_utils.read(tx, subject)
234 raise AssertionError(
235 'Record {} exist (must not exist)'.
format(subject))
239 def _drop(self, subject):
240 request = share.link_props_request(subject)
241 payload = share.link_props_drop_payload(request)
def test_put_protected_field(self)
def test_drop_reject(self)
def test_put_incomplete(self)
def _ensure_exists(self, batch)
def feed_service(self, message, can_fail=False)
def open_neo4j_session(self)
def test_drop_multi(self)
def test_put_and_propagate(self)
def _get_kafka_response(self, offset=0, expect_class=message_utils.MT_INFO)
def _ensure_missing(self, batch)