File: test_session_container.py

package info (click to toggle)
python-azure 20250603%2Bgit-1
  • links: PTS, VCS
  • area: main
  • in suites: forky, sid, trixie
  • size: 851,724 kB
  • sloc: python: 7,362,925; ansic: 804; javascript: 287; makefile: 195; sh: 145; xml: 109
file content (67 lines) | stat: -rw-r--r-- 3,006 bytes parent folder | download
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
# The MIT License (MIT)
# Copyright (c) Microsoft Corporation. All rights reserved.

import unittest

import pytest

import azure.cosmos.cosmos_client as cosmos_client
import test_config


# from types import *

@pytest.mark.cosmosEmulator
class TestSessionContainer(unittest.TestCase):
    # this test doesn't need real credentials, or connection to server
    host = test_config.TestConfig.host
    master_key = test_config.TestConfig.masterKey
    connectionPolicy = test_config.TestConfig.connectionPolicy

    def setUp(self):
        self.client = cosmos_client.CosmosClient(self.host, self.master_key, consistency_level="Session",
                                                 connection_policy=self.connectionPolicy)
        self.session = self.client.client_connection.Session

    def tearDown(self):
        pass

    def test_create_collection(self):
        # validate session token population after create collection request
        session_token = self.session.get_session_token('')
        assert session_token == ''

        create_collection_response_result = {u'_self': u'dbs/DdAkAA==/colls/DdAkAPS2rAA=/', u'_rid': u'DdAkAPS2rAA=',
                                             u'id': u'sample collection'}
        create_collection_response_header = {'x-ms-session-token': '0:0#409#24=-1#12=-1',
                                             'x-ms-alt-content-path': 'dbs/sample%20database'}
        self.session.update_session(create_collection_response_result, create_collection_response_header)

        token = self.session.get_session_token(u'/dbs/sample%20database/colls/sample%20collection')
        assert token == '0:0#409#24=-1#12=-1'

        token = self.session.get_session_token(u'dbs/DdAkAA==/colls/DdAkAPS2rAA=/')
        assert token == '0:0#409#24=-1#12=-1'
        return True

    def test_document_requests(self):
        # validate session token for rid based requests
        create_document_response_result = {u'_self': u'dbs/DdAkAA==/colls/DdAkAPS2rAA=/docs/DdAkAPS2rAACAAAAAAAAAA==/',
                                           u'_rid': u'DdAkAPS2rAACAAAAAAAAAA==',
                                           u'id': u'eb391181-5c49-415a-ab27-848ce21d5d11'}
        create_document_response_header = {'x-ms-session-token': '0:0#406#24=-1#12=-1',
                                           'x-ms-alt-content-path': 'dbs/sample%20database/colls/sample%20collection',
                                           'x-ms-content-path': 'DdAkAPS2rAA='}

        self.session.update_session(create_document_response_result, create_document_response_header)

        token = self.session.get_session_token(u'dbs/DdAkAA==/colls/DdAkAPS2rAA=/docs/DdAkAPS2rAACAAAAAAAAAA==/')
        assert token == '0:0#406#24=-1#12=-1'

        token = self.session.get_session_token(
            u'dbs/sample%20database/colls/sample%20collection/docs/eb391181-5c49-415a-ab27-848ce21d5d11')
        assert token == '0:0#406#24=-1#12=-1'


if __name__ == '__main__':
    unittest.main()