Пример #1
0
 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 = []
Пример #2
0
    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 = []
Пример #3
0
    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 = []
Пример #4
0
    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 = []
Пример #5
0
    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 = []
Пример #6
0
    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 = []