예제 #1
0
    def test_003(self):
        f = open('../log/wave.access.log', 'r')
        f.seek(0, os.SEEK_END)

        yield app.set_acl(enabled=False)

        # here we start
        c = MqttClient("conformity:{seq}", connect=4)
        c.publish("foo/bar", "baz", qos=1)

        f.readline()  # skip CONNECT
        if not _match(
                f, {
                    'request_method': 'PUBLISH',
                    'request_url': 'foo/bar',
                    'response_bytes_clf': '3',
                    'status': '200',
                    'request_header_user_agent': c.client_id
                }):
            defer.returnValue(False)

        # test w/ acls on
        yield app.set_acl(enabled=True)
        c.publish("foo/bar", "", qos=0)
        if not _match(
                f, {
                    'request_method': 'PUBLISH',
                    'request_url': 'foo/bar',
                    'response_bytes_clf': '0',
                    'status': '403',
                    'request_header_user_agent': c.client_id
                }):
            defer.returnValue(False)

        c.publish("foo/bar", "", qos=1)
        if not _match(
                f, {
                    'request_method': 'PUBLISH',
                    'request_url': 'foo/bar',
                    'response_bytes_clf': '0',
                    'status': '403',
                    'request_header_user_agent': c.client_id
                }):
            defer.returnValue(False)

        c.publish("foo/bar", "", qos=2)
        if not _match(
                f, {
                    'request_method': 'PUBLISH',
                    'request_url': 'foo/bar',
                    'response_bytes_clf': '0',
                    'status': '403',
                    'request_header_user_agent': c.client_id
                }):
            defer.returnValue(False)

        c.publish("foo/bat", "", qos=0)
        if not _match(
                f, {
                    'request_method': 'PUBLISH',
                    'request_url': 'foo/bat',
                    'response_bytes_clf': '0',
                    'status': '200',
                    'request_header_user_agent': c.client_id
                }):
            defer.returnValue(False)

        c.disconnect()
        defer.returnValue(True)
예제 #2
0
            def _init2(self):
                yield app.set_acl(enabled=True, filename=acl_file)
                yield acl.switch(acl_file)

                defer.returnValue(
                    self._t_check(client=user, acl=True, **users[user]))
예제 #3
0
    def test_002(self):
        f = open('../log/wave.access.log', 'r')
        f.seek(0, os.SEEK_END)

        yield app.set_acl(enabled=False)

        # here we start
        c = MqttClient("conformity:{seq}", connect=4)
        c.subscribe("foo/bar", qos=1)
        c.unsubscribe("foo/bar")

        f.readline()  # skip CONNECT
        if not _match(
                f, {
                    'request_method': 'SUBSCRIBE',
                    'request_url': 'foo/bar',
                    'status': '200',
                    'request_header_user_agent': c.client_id
                }):
            defer.returnValue(False)
        if not _match(
                f, {
                    'request_method': 'UNSUBSCRIBE',
                    'request_url': 'foo/bar',
                    'status': '200',
                    'request_header_user_agent': c.client_id
                }):
            defer.returnValue(False)

        # test w/ acls on
        yield app.set_acl(enabled=True)
        c.subscribe("foo/bar", qos=0)
        if not _match(
                f, {
                    'request_method': 'SUBSCRIBE',
                    'request_url': 'foo/bar',
                    'status': '403',
                    'request_header_user_agent': c.client_id
                }):
            defer.returnValue(False)

        c.subscribe("foo/bar", qos=1)
        if not _match(
                f, {
                    'request_method': 'SUBSCRIBE',
                    'request_url': 'foo/bar',
                    'status': '403',
                    'request_header_user_agent': c.client_id
                }):
            defer.returnValue(False)

        c.subscribe("foo/bar", qos=2)
        if not _match(
                f, {
                    'request_method': 'SUBSCRIBE',
                    'request_url': 'foo/bar',
                    'status': '403',
                    'request_header_user_agent': c.client_id
                }):
            defer.returnValue(False)

        c.subscribe("foo/baz", qos=0)
        if not _match(
                f, {
                    'request_method': 'SUBSCRIBE',
                    'request_url': 'foo/baz',
                    'status': '200',
                    'request_header_user_agent': c.client_id
                }):
            defer.returnValue(False)

        c.unsubscribe("foo/baz")
        c.disconnect()
        defer.returnValue(True)
예제 #4
0
            def _init1(self):
                yield app.set_acl(enabled=False)

                defer.returnValue(
                    self._t_check(client=user, acl=False, **users[user]))
예제 #5
0
 def cleanup_suite(self):
     yield app.set_auth(required=False)
     yield app.set_acl(enabled=False)
예제 #6
0
파일: 036_acl.py 프로젝트: gbour/wave
 def cleanup_suite(self):
     yield app.set_auth(required=False)
     yield app.set_acl(enabled=False)
예제 #7
0
파일: 036_acl.py 프로젝트: gbour/wave
            def _init2(self):
                yield app.set_acl(enabled=True, filename=acl_file); yield acl.switch(acl_file)

                defer.returnValue(self._t_check(client=user, acl=True, **users[user]))
예제 #8
0
파일: 036_acl.py 프로젝트: gbour/wave
            def _init1(self):
                yield app.set_acl(enabled=False)

                defer.returnValue(self._t_check(client=user, acl=False, **users[user]))