Ejemplo n.º 1
0
 def test_one_container(self):
     """
     tests to ensure behavior is normal with one container
     """
     # setup expectation
     swift_stub = SwiftClientStub()
     swift_stub.with_account('123223')
     cont_name = 'a-container-name'
     swift_stub.with_container(cont_name)
     # interact
     conn = swiftclient.client.Connection()
     conn.get_auth()
     conn.put_container(cont_name)
     # get headers plus container metadata
     self.assertThat(len(conn.get_account()), matchers.Is(2))
     # verify container details
     account_containers = conn.get_account()[1]
     self.assertThat(len(account_containers), matchers.Is(1))
     self.assertThat(account_containers[0],
                     matchers.KeysEqual('count', 'bytes', 'name'))
     self.assertThat(account_containers[0]['name'], matchers.Is(cont_name))
     # get container details
     cont_info = conn.get_container(cont_name)
     self.assertIsNotNone(cont_info)
     self.assertThat(cont_info[0], matchers.KeysEqual('content-length',
                     'x-container-object-count', 'accept-ranges',
                     'x-container-bytes-used', 'x-timestamp',
                     'x-trans-id', 'date', 'content-type'))
     self.assertThat(len(cont_info[1]), matchers.Equals(0))
     # remove container
     swift_stub.without_container(cont_name)
     with testtools.ExpectedException(swiftclient.ClientException):
         conn.get_container(cont_name)
         # ensure there are no more containers in account
     self.assertThat(len(conn.get_account()[1]), matchers.Is(0))
Ejemplo n.º 2
0
    def test_one_object(self):
        swift_stub = SwiftClientStub()
        swift_stub.with_account('123223')
        swift_stub.with_container('bob')
        swift_stub.with_object('bob', 'test', 'test_contents')
        # create connection
        conn = swiftclient.client.Connection()
        # test container lightly
        cont_info = conn.get_container('bob')
        self.assertIsNotNone(cont_info)
        self.assertThat(cont_info[0],
                        matchers.KeysEqual('content-length',
                                           'x-container-object-count',
                                           'accept-ranges',
                                           'x-container-bytes-used',
                                           'x-timestamp', 'x-trans-id', 'date',
                                           'content-type'))
        cont_objects = cont_info[1]
        self.assertThat(len(cont_objects), matchers.Equals(1))
        obj_1 = cont_objects[0]
        self.assertThat(obj_1, matchers.Equals(
            {'bytes': 13, 'last_modified': '2013-03-15T22:10:49.361950',
             'hash': 'ccc55aefbf92aa66f42b638802c5e7f6', 'name': 'test',
             'content_type': 'application/octet-stream',
             'contents': 'test_contents'}))
        # test object api - not much to do here
        self.assertThat(conn.get_object('bob', 'test')[1],
                        matchers.Is('test_contents'))

        # test remove object
        swift_stub.without_object('bob', 'test')
        # interact
        with testtools.ExpectedException(swiftclient.ClientException):
            conn.delete_object('bob', 'test')
        self.assertThat(len(conn.get_container('bob')[1]), matchers.Is(0))
Ejemplo n.º 3
0
 def test_values(self):
     self.assertThat(
         self._runner.testValues({True: 123, 5: 'Q', 'y': False}),
         matchers.MatchesSetwise(
             matchers.Is(False),
             matchers.Equals(123),
             matchers.Equals('Q')))
Ejemplo n.º 4
0
 def test_keys(self):
     self.assertThat(
         self._runner.testKeys({True: 123, 5: 'Q', 'y': False}),
         matchers.MatchesSetwise(
             matchers.Equals('y'),
             matchers.Is(True),
             matchers.Equals(5)))
Ejemplo n.º 5
0
    def test_two_objects(self):
        with SwiftClientStub() as swift_stub:
            swift_stub.with_account('123223')
            swift_stub.with_container('bob')
            swift_stub.with_container('bob2')
            swift_stub.with_object('bob', 'test', 'test_contents')
            swift_stub.with_object('bob', 'test2', 'test_contents2')

            conn = swiftclient.client.Connection()

            self.assertIs(len(conn.get_account()), 2)
            cont_info = conn.get_container('bob')
            self.assertIsNotNone(cont_info)
            self.assertThat(
                cont_info[0],
                matchers.KeysEqual('content-length',
                                   'x-container-object-count', 'accept-ranges',
                                   'x-container-bytes-used', 'x-timestamp',
                                   'x-trans-id', 'date', 'content-type'))
            self.assertThat(len(cont_info[1]), matchers.Equals(2))
            self.assertThat(
                cont_info[1][0],
                matchers.Equals({
                    'bytes': 13,
                    'last_modified': '2013-03-15T22:10:49.361950',
                    'hash': 'ccc55aefbf92aa66f42b638802c5e7f6',
                    'name': 'test',
                    'content_type': 'application/octet-stream',
                    'contents': 'test_contents'
                }))
            self.assertThat(
                conn.get_object('bob', 'test')[1],
                matchers.Is('test_contents'))
            self.assertThat(
                conn.get_object('bob', 'test2')[1],
                matchers.Is('test_contents2'))

            swift_stub.without_object('bob', 'test')
            with ExpectedException(swiftclient.ClientException):
                conn.delete_object('bob', 'test')
            self.assertThat(len(conn.get_container('bob')[1]), matchers.Is(1))

            swift_stub.without_container('bob')
            with ExpectedException(swiftclient.ClientException):
                conn.get_container('bob')

            self.assertThat(len(conn.get_account()), matchers.Is(2))
Ejemplo n.º 6
0
    def test_replace_object(self):
        """
        Test to ensure that if an object is updated the container object
        count is the same and the contents of the object are updated
        """
        swift_stub = SwiftClientStub()
        swift_stub.with_account('1223df2')
        swift_stub.with_container('new-container')
        swift_stub.with_object('new-container', 'new-object',
                               'new-object-contents')

        conn = swiftclient.client.Connection()

        conn.put_object('new-container', 'new-object', 'new-object-contents')
        obj_resp = conn.get_object('new-container', 'new-object')
        self.assertThat(obj_resp, matchers.Not(matchers.Is(None)))
        self.assertThat(len(obj_resp), matchers.Is(2))
        self.assertThat(obj_resp[1], matchers.Is('new-object-contents'))

        # set expected behavior - trivial here since it is the intended
        # behavior however keep in mind this is just to support testing of
        # trove components
        swift_stub.with_object('new-container', 'new-object',
                               'updated-object-contents')

        conn.put_object('new-container', 'new-object',
                        'updated-object-contents')
        obj_resp = conn.get_object('new-container', 'new-object')
        self.assertThat(obj_resp, matchers.Not(matchers.Is(None)))
        self.assertThat(len(obj_resp), matchers.Is(2))
        self.assertThat(obj_resp[1], matchers.Is('updated-object-contents'))
        # ensure object count has not increased
        self.assertThat(len(conn.get_container('new-container')[1]),
                        matchers.Is(1))
Ejemplo n.º 7
0
 def _validate_object(self, obj):
     for attr in BASE_EXPECTED_FIELDS:
         if attr.endswith('_at'):
             self.assertThat(
                 obj[attr],
                 matchers.MatchesAny(matchers.Is(None),
                                     matchers.IsInstance(str)))
         else:
             self.assertIsInstance(obj[attr], bool)
Ejemplo n.º 8
0
 def match(self, matchee):
     checks = []
     checks.append(matchers.IsInstance(MultiCheck))
     checks.append(
         matchers.AfterPreprocessing(operator.attrgetter('strategy'),
                                     matchers.Is(self.strategy)))
     checks.append(
         matchers.AfterPreprocessing(
             operator.attrgetter('subchecks'),
             matchers.MatchesListwise(self.subchecks)))
     return matchers.MatchesAll(*checks).match(matchee)
Ejemplo n.º 9
0
 def test_empty_account(self):
     """
     this is an account with no containers and no objects
     """
     # setup expectation
     with SwiftClientStub() as swift_stub:
         swift_stub.with_account('123223')
         # interact
         conn = swiftclient.client.Connection()
         account_info = conn.get_account()
         self.assertThat(account_info, matchers.Not(matchers.Is(None)))
         self.assertThat(len(account_info), matchers.Is(2))
         self.assertThat(account_info, matchers.IsInstance(tuple))
         self.assertThat(account_info[0], matchers.IsInstance(dict))
         self.assertThat(
             account_info[0],
             matchers.KeysEqual('content-length', 'accept-ranges',
                                'x-timestamp', 'x-trans-id', 'date',
                                'x-account-bytes-used',
                                'x-account-container-count', 'content-type',
                                'x-account-object-count'))
         self.assertThat(account_info[1], matchers.IsInstance(list))
         self.assertThat(len(account_info[1]), matchers.Is(0))
Ejemplo n.º 10
0
 def test_cms_hash_token_not_pki(self):
     """If the token_id is not a PKI token then it returns the token_id."""
     token = 'something'
     self.assertFalse(cms.is_asn1_token(token))
     self.assertThat(cms.cms_hash_token(token), matchers.Is(token))
Ejemplo n.º 11
0
 def test_cms_hash_token_no_token_id(self):
     token_id = None
     self.assertThat(cms.cms_hash_token(token_id), matchers.Is(None))