Ejemplo n.º 1
0
    def test_complex_update(self):
        self.connection(
            _lv.PutItem(
                "Aaa", {
                    "h": "complex",
                    "a": "a",
                    "b": "b",
                    "c": "c",
                    "d": set([41, 43]),
                    "e": 42,
                    "f": set([41, 42, 43]),
                    "g": set([39, 40]),
                }))

        r = self.connection(
            _lv.UpdateItem("Aaa", {
                "h": "complex"
            }).set("a", ":s").set("b", ":i").remove("c").add("d", "s").add(
                "e",
                "i").delete("f",
                            "s").delete("g", "s").expression_attribute_value(
                                "s", set([42, 43])).expression_attribute_value(
                                    "i", 52).return_values_all_new())

        self.assertEqual(
            r.attributes, {
                "h": "complex",
                "a": set([42, 43]),
                "b": 52,
                "d": set([41, 42, 43]),
                "e": 94,
                "f": set([41]),
                "g": set([39, 40]),
            })
Ejemplo n.º 2
0
    def test_return_consumed_capacity_indexes_without_indexed_attribute(self):
        r = self.connection(
            _lv.UpdateItem(self.table, self.tab_key).set(
                "a", ":a").expression_attribute_value(
                    "a", "a").return_consumed_capacity_indexes())

        self.assertEqual(r.consumed_capacity.capacity_units, 1.0)
        self.assertEqual(r.consumed_capacity.global_secondary_indexes, None)
        self.assertEqual(r.consumed_capacity.local_secondary_indexes, None)
        self.assertEqual(r.consumed_capacity.table.capacity_units, 1.0)
        self.assertEqual(r.consumed_capacity.table_name, self.table)
Ejemplo n.º 3
0
    def test_add_and_delete_from_same_set(self):
        self.connection(_lv.PutItem("Aaa", {"h": "expr", "a": {1, 2, 3}}))

        # A bit sad: you can't add to and delete from the same set
        with self.assertRaises(_lv.ValidationException):
            self.connection(
                _lv.UpdateItem("Aaa", {
                    "h": "expr"
                }).delete("a",
                          "three").add("a", "four").expression_attribute_value(
                              "three", {3}).expression_attribute_value(
                                  "four", {4}).return_values_all_new())
Ejemplo n.º 4
0
    def test_return_item_collection_metrics_size(self):
        r = self.connection(
            _lv.UpdateItem(self.table, self.tab_key).set(
                "a", ":a").expression_attribute_value(
                    "a", "a").return_item_collection_metrics_size())

        self.assertEqual(r.item_collection_metrics.item_collection_key,
                         {"tab_h": "0"})
        self.assertEqual(r.item_collection_metrics.size_estimate_range_gb[0],
                         0.0)
        self.assertEqual(r.item_collection_metrics.size_estimate_range_gb[1],
                         1.0)
Ejemplo n.º 5
0
    def test_set(self):
        r = self.connection(
            _lv.UpdateItem("Aaa", {
                "h": "set"
            }).set("a", ":v").set("#p", ":w").expression_attribute_value(
                "v", "aaa").expression_attribute_value(
                    "w", "bbb").expression_attribute_name("p", "b"))

        self.assertEqual(
            self.connection(_lv.GetItem("Aaa", {"h": "set"})).item, {
                "h": "set",
                "a": "aaa",
                "b": "bbb"
            })
Ejemplo n.º 6
0
    def test_condition_expression(self):
        self.connection(_lv.PutItem("Aaa", {"h": "expr", "a": 42, "b": 42}))

        r = self.connection(
            _lv.UpdateItem("Aaa", {
                "h": "expr"
            }).set("checked", ":true").expression_attribute_value(
                "true",
                True).condition_expression("a=b").return_values_all_new())

        self.assertEqual(r.attributes, {
            "h": "expr",
            "a": 42,
            "b": 42,
            "checked": True
        })
Ejemplo n.º 7
0
    def test_return_consumed_capacity_indexes_with_globally_indexed_attribute_only(
            self):
        r = self.connection(
            _lv.UpdateItem(self.table, self.tab_key).set(
                "gsi_h",
                ":gsi_h").expression_attribute_value("gsi_h", "1").set(
                    "gsi_r", ":gsi_r").expression_attribute_value(
                        "gsi_r", 1).return_consumed_capacity_indexes())

        self.assertEqual(r.consumed_capacity.capacity_units, 2.0)
        self.assertEqual(
            r.consumed_capacity.global_secondary_indexes["gsi"].capacity_units,
            1.0)
        self.assertEqual(r.consumed_capacity.local_secondary_indexes, None)
        self.assertEqual(r.consumed_capacity.table.capacity_units, 1.0)
        self.assertEqual(r.consumed_capacity.table_name, self.table)