Esempio n. 1
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))
Esempio 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))
Esempio n. 3
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, Not(Is(None)))
        self.assertThat(len(obj_resp), Is(2))
        self.assertThat(obj_resp[1], 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, Not(Is(None)))
        self.assertThat(len(obj_resp), Is(2))
        self.assertThat(obj_resp[1], Is('updated-object-contents'))
        # ensure object count has not increased
        self.assertThat(len(conn.get_container('new-container')[1]), Is(1))
Esempio n. 4
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],
                        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), Equals(1))
        obj_1 = cont_objects[0]
        self.assertThat(obj_1, Equals(
            {'bytes': 13, 'last_modified': '2013-03-15T22:10:49.361950',
             'hash': 'ccc55aefbf92aa66f42b638802c5e7f6', 'name': 'test',
             'content_type': 'application/octet-stream'}))
        # test object api - not much to do here
        self.assertThat(conn.get_object('bob', 'test')[1], Is('test_contents'))

        # test remove object
        swift_stub.without_object('bob', 'test')
        # interact
        conn.delete_object('bob', 'test')
        with testtools.ExpectedException(swiftclient.ClientException):
            conn.delete_object('bob', 'test')
        self.assertThat(len(conn.get_container('bob')[1]), Is(0))
Esempio n. 5
0
    def test_two_objects(self):
        swift_stub = SwiftClientStub()
        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],
            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]), Equals(2))
        self.assertThat(
            cont_info[1][0],
            Equals(
                {
                    "bytes": 13,
                    "last_modified": "2013-03-15T22:10:49.361950",
                    "hash": "ccc55aefbf92aa66f42b638802c5e7f6",
                    "name": "test",
                    "content_type": "application/octet-stream",
                }
            ),
        )
        self.assertThat(conn.get_object("bob", "test")[1], Is("test_contents"))
        self.assertThat(conn.get_object("bob", "test2")[1], Is("test_contents2"))

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

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

        self.assertThat(len(conn.get_account()), Is(2))
Esempio n. 6
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],
            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), Equals(1))
        obj_1 = cont_objects[0]
        self.assertThat(
            obj_1,
            Equals(
                {
                    "bytes": 13,
                    "last_modified": "2013-03-15T22:10:49.361950",
                    "hash": "ccc55aefbf92aa66f42b638802c5e7f6",
                    "name": "test",
                    "content_type": "application/octet-stream",
                }
            ),
        )
        # test object api - not much to do here
        self.assertThat(conn.get_object("bob", "test")[1], Is("test_contents"))

        # test remove object
        swift_stub.without_object("bob", "test")
        # interact
        conn.delete_object("bob", "test")
        with testtools.ExpectedException(swiftclient.ClientException):
            conn.delete_object("bob", "test")
        self.assertThat(len(conn.get_container("bob")[1]), Is(0))
Esempio n. 7
0
    def test_two_objects(self):
        swift_stub = SwiftClientStub()
        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 testtools.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 testtools.ExpectedException(swiftclient.ClientException):
            conn.get_container('bob')

        self.assertThat(len(conn.get_account()), matchers.Is(2))
Esempio n. 8
0
    def test_two_objects(self):
        swift_stub = SwiftClientStub()
        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 testtools.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 testtools.ExpectedException(swiftclient.ClientException):
            conn.get_container('bob')

        self.assertThat(len(conn.get_account()), matchers.Is(2))