def test_callback_trim(self): def do_trim(resource, fields): return { "name": resource["name"], "file": resource["file"] } # Arrange subscriptionmanager.__manager__ = None redis_mock = Mock() publish_mock = Mock() redis_mock.attach_mock(publish_mock, "publish") manager = GetManager() manager.trc = redis_mock condition1 = { "id": "test1" } resource = { "id": "test1", "name": "test1", "file": "AnnaK", "value": "Tols" } channel1 = manager.createChannel(conditions = condition1, collection = "test", fields = None) # Act manager.publish(resource, "test", do_trim) # Assert self.assertTrue(redis_mock.publish.called) self.assertEqual(json.loads(redis_mock.publish.call_args[0][1]), { "name": "test1", "file": "AnnaK" }) manager.subscriptions = []
def test_publish_in(self): # Arrange subscriptionmanager.__manager__ = None redis_mock = Mock() publish_mock = Mock() redis_mock.attach_mock(publish_mock, "publish") manager = GetManager() manager.trc = redis_mock condition1 = { "id": { "in": [ 10, 3 ] } } resource1 = { "id": 10, "data": "stuff" } resource2 = { "id": 5, "data": "stuff_also" } resource3 = { "id": 3, "data": "stuff_more" } channel1 = manager.createChannel(conditions = condition1, collection = "test_coll1", fields = None) # Act manager.publish(resource1, "test_coll1") manager.publish(resource2, "test_coll1") manager.publish(resource3, "test_coll1") # Assert self.assertEqual(redis_mock.publish.call_count, 2) self.assertEqual(redis_mock.publish.call_args[0][0], channel1) self.assertEqual(json.loads(redis_mock.publish.call_args_list[0][0][1]), resource1) self.assertEqual(json.loads(redis_mock.publish.call_args_list[1][0][1]), resource3) manager.subscriptions = []
def test_publish_equal(self): # Arrange subscriptionmanager.__manager__ = None redis_mock = Mock() publish_mock = Mock() redis_mock.attach_mock(publish_mock, "publish") manager = GetManager() manager.trc = redis_mock condition1 = { "id": { "equal": "test1" } } resource = { "id": "test1", "data": "stuff" } channel1 = manager.createChannel(conditions = condition1, collection = "test_coll1", fields = None) channel2 = manager.createChannel(conditions = condition1, collection = "test_coll2", fields = None) # Act manager.publish(resource, "test_coll1") # Assert self.assertEqual(redis_mock.publish.call_count, 1) self.assertEqual(redis_mock.publish.call_args[0][0], channel1) self.assertEqual(json.loads(redis_mock.publish.call_args[0][1]), resource) manager.subscriptions = []
def test_publish_trim(self): # Arrange subscriptionmanager.__manager__ = None redis_mock = Mock() publish_mock = Mock() redis_mock.attach_mock(publish_mock, "publish") manager = GetManager() manager.trc = redis_mock condition1 = {"id": "test1"} fields = ["name", "file"] resource = { "id": "test1", "name": "test1", "file": "AnnaK", "value": "Tols" } channel1 = manager.createChannel(conditions=condition1, collection="test", fields=fields) # Act manager.publish(resource, "test") # Assert self.assertEqual(json.loads(redis_mock.publish.call_args[0][1]), { "name": "test1", "file": "AnnaK" }) manager.subscriptions = []
def test_publish_in(self): # Arrange subscriptionmanager.__manager__ = None redis_mock = Mock() publish_mock = Mock() redis_mock.attach_mock(publish_mock, "publish") manager = GetManager() manager.trc = redis_mock condition1 = {"id": {"in": [10, 3]}} resource1 = {"id": 10, "data": "stuff"} resource2 = {"id": 5, "data": "stuff_also"} resource3 = {"id": 3, "data": "stuff_more"} channel1 = manager.createChannel(conditions=condition1, collection="test_coll1", fields=None) # Act manager.publish(resource1, "test_coll1") manager.publish(resource2, "test_coll1") manager.publish(resource3, "test_coll1") # Assert self.assertEqual(redis_mock.publish.call_count, 2) self.assertEqual(redis_mock.publish.call_args[0][0], channel1) self.assertEqual( json.loads(redis_mock.publish.call_args_list[0][0][1]), resource1) self.assertEqual( json.loads(redis_mock.publish.call_args_list[1][0][1]), resource3) manager.subscriptions = []
def test_publish_equal(self): # Arrange subscriptionmanager.__manager__ = None redis_mock = Mock() publish_mock = Mock() redis_mock.attach_mock(publish_mock, "publish") manager = GetManager() manager.trc = redis_mock condition1 = {"id": {"equal": "test1"}} resource = {"id": "test1", "data": "stuff"} channel1 = manager.createChannel(conditions=condition1, collection="test_coll1", fields=None) channel2 = manager.createChannel(conditions=condition1, collection="test_coll2", fields=None) # Act manager.publish(resource, "test_coll1") # Assert self.assertEqual(redis_mock.publish.call_count, 1) self.assertEqual(redis_mock.publish.call_args[0][0], channel1) self.assertEqual(json.loads(redis_mock.publish.call_args[0][1]), resource) manager.subscriptions = []