Exemple #1
0
 def test_unit__get_auth_headers__ok__nominal_test(self):
     mf = MailFetcher(
         host="host_imap",
         port="993",
         use_ssl=True,
         password="******",
         folder="INBOX",
         use_idle=True,
         use_html_parsing=True,
         use_txt_parsing=True,
         lockfile_path="email_fetcher.lock",
         api_base_url="http://127.0.0.1:6543/api",
         burst=True,
         api_key="apikey",
         reply_to_pattern="",
         references_pattern="",
         connection_max_lifetime=60,
         heartbeat=60,
         user="******",
     )
     headers = mf._get_auth_headers("*****@*****.**")
     assert "Tracim-Api-Key" in headers
     assert "Tracim-Api-Login" in headers
     assert headers["Tracim-Api-Key"] == "apikey"
     assert headers["Tracim-Api-Login"] == "*****@*****.**"
Exemple #2
0
    def test_unit___get_content_info__err_403__no_right_to_see(self):
        content_json = {"code": None, "details": {"error_detail": {}}, "message": "more info..."}

        responses.add(
            responses.GET, "http://127.0.0.1:6543/api/contents/1", json=content_json, status=403
        )
        mf = MailFetcher(
            host="host_imap",
            port="993",
            use_ssl=True,
            password="******",
            folder="INBOX",
            use_idle=True,
            use_html_parsing=True,
            use_txt_parsing=True,
            lockfile_path="email_fetcher.lock",
            api_base_url="http://127.0.0.1:6543/api/",
            burst=True,
            api_key="apikey",
            connection_max_lifetime=60,
            heartbeat=60,
            reply_to_pattern="",
            references_pattern="",
            user="******",
        )
        auth_headers = {"Tracim-Api-Key": "apikey", "Tracim-Api-Login": "******"}
        mock = Mock()
        mock.return_value = auth_headers
        mf._get_auth_headers = mock

        with pytest.raises(BadStatusCode):
            mf._get_content_info(1, user_email="*****@*****.**")
Exemple #3
0
 def test_unit__get_auth_headers__ok__nominal_test(self):
     mf = MailFetcher(
         host='host_imap',
         port='993',
         use_ssl=True,
         password='******',
         folder='INBOX',
         use_idle=True,
         use_html_parsing=True,
         use_txt_parsing=True,
         lockfile_path='email_fetcher.lock',
         api_base_url='http://127.0.0.1:6543/api',
         burst=True,
         api_key='apikey',
         reply_to_pattern='',
         references_pattern='',
         connection_max_lifetime=60,
         heartbeat=60,
         user='******',
     )
     headers = mf._get_auth_headers('*****@*****.**')
     assert 'Tracim-Api-Key' in headers
     assert 'Tracim-Api-Login' in headers
     assert headers['Tracim-Api-Key'] == 'apikey'
     assert headers['Tracim-Api-Login'] == '*****@*****.**'
Exemple #4
0
    def test_unit__send_request__ok__nominal_case(self):
        content_json = {
            "author": {
                "avatar_url": None,
                "public_name": "John Doe",
                "user_id": 3
            },
            "content_id": 2,
            "created": "2018-08-27T12:12:23.807Z",
            "parent_id": 1,
            "raw_content": "<p>This is just an html comment !</p>",
        }
        responses.add(
            responses.POST,
            "http://127.0.0.1:6543/api/workspaces/4/contents/1/comments",
            status=200,
            json=content_json,
        )
        mf = MailFetcher(
            host="host_imap",
            port="993",
            use_ssl=True,
            password="******",
            folder="INBOX",
            use_idle=True,
            use_html_parsing=True,
            use_txt_parsing=True,
            lockfile_path="email_fetcher.lock",
            api_base_url="http://127.0.0.1:6543/api/",
            burst=True,
            api_key="apikey",
            connection_max_lifetime=60,
            heartbeat=60,
            reply_to_pattern="",
            references_pattern="",
            user="******",
        )
        imapc_mock = MagicMock()
        imapc_mock_add_flags = MagicMock()
        imapc_mock.add_flags = imapc_mock_add_flags
        email_mock = MagicMock()
        auth_headers = {
            "Tracim-Api-Key": "apikey",
            "Tracim-Api-Login": "******"
        }
        header_mock = Mock()
        header_mock.return_value = auth_headers
        mf._get_auth_headers = header_mock
        mf._send_request(
            endpoint=
            "http://127.0.0.1:6543/api/workspaces/4/contents/1/comments",
            json_body_dict={"raw_content": "CONTENT"},
            method="POST",
            imapc=imapc_mock,
            mail=email_mock,
        )

        assert imapc_mock_add_flags.call_count == 2
Exemple #5
0
    def test_unit__send_request__ok__nominal_case(self):
        content_json = {
          "author": {
            "avatar_url": None,
            "public_name": "John Doe",
            "user_id": 3
          },
          "content_id": 2,
          "created": "2018-08-27T12:12:23.807Z",
          "parent_id": 1,
          "raw_content": "<p>This is just an html comment !</p>"
        }
        responses.add(
            responses.POST,
            'http://127.0.0.1:6543/api/workspaces/4/contents/1/comments',
            status=200,
            json=content_json
        )
        mf = MailFetcher(
            host='host_imap',
            port='993',
            use_ssl=True,
            password='******',
            folder='INBOX',
            use_idle=True,
            use_html_parsing=True,
            use_txt_parsing=True,
            lockfile_path='email_fetcher.lock',
            api_base_url='http://127.0.0.1:6543/api/',
            burst=True,
            api_key='apikey',
            connection_max_lifetime=60,
            heartbeat=60,
            reply_to_pattern='',
            references_pattern='',
            user='******',
        )
        imapc_mock = MagicMock()
        imapc_mock_add_flags = MagicMock()
        imapc_mock.add_flags = imapc_mock_add_flags
        email_mock = MagicMock()
        auth_headers = {
            'Tracim-Api-Key': 'apikey',
            'Tracim-Api-Login': '******'
        }
        header_mock = Mock()
        header_mock.return_value = auth_headers
        mf._get_auth_headers = header_mock
        mf._send_request(
            endpoint='http://127.0.0.1:6543/api/workspaces/4/contents/1/comments',  # nopep8
            json_body_dict={'raw_content': 'CONTENT'},
            method='POST',
            imapc=imapc_mock,
            mail=email_mock,
        )

        assert imapc_mock_add_flags.call_count == 2
Exemple #6
0
    def test_unit___get_content_info__ok__nominal_test(self):
        content_json = {
            "author": {"avatar_url": None, "public_name": "Global manager", "user_id": 1},
            "content_id": 1,
            "content_type": "thread",
            "created": "2018-08-24T15:00:08Z",
            "current_revision_id": 29,
            "is_archived": False,
            "is_deleted": False,
            "label": "coucou",
            "last_modifier": {"avatar_url": None, "public_name": "Global manager", "user_id": 1},
            "modified": "2018-08-24T15:00:08Z",
            "parent_id": None,
            "raw_content": "",
            "show_in_ui": True,
            "slug": "coucou",
            "status": "open",
            "sub_content_types": ["comment"],
            "workspace_id": 4,
        }

        responses.add(
            responses.GET, "http://127.0.0.1:6543/api/contents/1", json=content_json, status=200
        )
        mf = MailFetcher(
            host="host_imap",
            port="993",
            use_ssl=True,
            password="******",
            folder="INBOX",
            use_idle=True,
            use_html_parsing=True,
            use_txt_parsing=True,
            lockfile_path="email_fetcher.lock",
            api_base_url="http://127.0.0.1:6543/api/",
            burst=True,
            api_key="apikey",
            connection_max_lifetime=60,
            heartbeat=60,
            reply_to_pattern="",
            references_pattern="",
            user="******",
        )
        auth_headers = {"Tracim-Api-Key": "apikey", "Tracim-Api-Login": "******"}
        mock = Mock()
        mock.return_value = auth_headers
        mf._get_auth_headers = mock
        content_info = mf._get_content_info(1, user_email="*****@*****.**")
        assert content_info == content_json
Exemple #7
0
    def test_unit___get_content_info__err_403__no_right_to_see(self):
        content_json = {
            "code": None,
            "details": {
                "error_detail": {}
            },
            "message": "more info..."
        }

        responses.add(
            responses.GET,
            'http://127.0.0.1:6543/api/contents/1',
            json=content_json,
            status=403
        )
        mf = MailFetcher(
            host='host_imap',
            port='993',
            use_ssl=True,
            password='******',
            folder='INBOX',
            use_idle=True,
            use_html_parsing=True,
            use_txt_parsing=True,
            lockfile_path='email_fetcher.lock',
            api_base_url='http://127.0.0.1:6543/api/',
            burst=True,
            api_key='apikey',
            connection_max_lifetime=60,
            heartbeat=60,
            reply_to_pattern='',
            references_pattern='',
            user='******',
        )
        auth_headers = {
            'Tracim-Api-Key': 'apikey',
            'Tracim-Api-Login': '******'
        }
        mock = Mock()
        mock.return_value = auth_headers
        mf._get_auth_headers = mock

        with pytest.raises(BadStatusCode):
            mf._get_content_info(1, user_email='*****@*****.**')  # nopep8
Exemple #8
0
    def test_unit___get_content_info__ok__nominal_test(self):
        content_json = {
            "author": {
                "avatar_url": None,
                "public_name": "Global manager",
                "user_id": 1
            },
            "content_id": 1,
            "content_type": "thread",
            "created": "2018-08-24T15:00:08Z",
            "current_revision_id": 29,
            "is_archived": False,
            "is_deleted": False,
            "label": "coucou",
            "last_modifier": {
                "avatar_url": None,
                "public_name": "Global manager",
                "user_id": 1
            },
            "modified": "2018-08-24T15:00:08Z",
            "parent_id": None,
            "raw_content": "",
            "show_in_ui": True,
            "slug": "coucou",
            "status": "open",
            "sub_content_types": [
                "comment"
            ],
            "workspace_id": 4
        }

        responses.add(
            responses.GET,
            'http://127.0.0.1:6543/api/contents/1',
            json=content_json,
            status=200
        )
        mf = MailFetcher(
            host='host_imap',
            port='993',
            use_ssl=True,
            password='******',
            folder='INBOX',
            use_idle=True,
            use_html_parsing=True,
            use_txt_parsing=True,
            lockfile_path='email_fetcher.lock',
            api_base_url='http://127.0.0.1:6543/api/',
            burst=True,
            api_key='apikey',
            connection_max_lifetime=60,
            heartbeat=60,
            reply_to_pattern='',
            references_pattern='',
            user='******',
        )
        auth_headers = {
            'Tracim-Api-Key': 'apikey',
            'Tracim-Api-Login': '******'
        }
        mock = Mock()
        mock.return_value = auth_headers
        mf._get_auth_headers = mock
        content_info = mf._get_content_info(1, user_email='*****@*****.**')  # nopep8
        assert content_info == content_json