Beispiel #1
0
    def test_isset_Error(self) -> None:
        e = UnusedError()
        # pyre-fixme[6]: Expected `HasIsSet[Variable[thrift.py3.types._T]]` for 1st
        #  param but got `UnusedError`.
        self.assertFalse(Struct.isset(e).message)

        e = UnusedError(message="ACK")
        # pyre-fixme[6]: Expected `HasIsSet[Variable[thrift.py3.types._T]]` for 1st
        #  param but got `UnusedError`.
        self.assertTrue(Struct.isset(e).message)
Beispiel #2
0
 def test_isset_repr(self) -> None:
     serialized = b'{"name":"/dev/null","type":8}'
     file = deserialize(File, serialized, protocol=Protocol.JSON)
     self.assertEqual(
         "Struct.isset(<File>, name=True, permissions=False, type=True)",
         repr(Struct.isset(file)),
     )
     self.assertEqual(
         "Struct.isset(<File>, name=True, permissions=False, type=True)",
         str(Struct.isset(file)),
     )
Beispiel #3
0
 def test_optional_defaults(self) -> None:
     converted = to_py3_struct(
         types.OptionalDefaultsStruct,
         ttypes.OptionalDefaultsStruct(),
     )
     # pyre-fixme[6]: Expected `HasIsSet[Variable[thrift.py3.types._T]]` for 1st
     #  param but got `OptionalDefaultsStruct`.
     self.assertFalse(Struct.isset(converted).sillyString)
     # pyre-fixme[6]: Expected `HasIsSet[Variable[thrift.py3.types._T]]` for 1st
     #  param but got `OptionalDefaultsStruct`.
     self.assertFalse(Struct.isset(converted).sillyColor)
Beispiel #4
0
    def test_isset_Struct(self) -> None:
        serialized = b'{"name":"/dev/null","type":8}'
        file = deserialize(File, serialized, protocol=Protocol.JSON)
        self.assertTrue(Struct.isset(file).type)
        self.assertFalse(Struct.isset(file).permissions)
        # required fields are always set
        self.assertTrue(Struct.isset(file).name)

        serialized = b'{"name":"/dev/null"}'
        file = deserialize(File, serialized, protocol=Protocol.JSON)
        self.assertEqual(file.type, Kind.REGULAR)
        self.assertFalse(Struct.isset(file).type)
Beispiel #5
0
 def test_isset_repr(self) -> None:
     serialized = b'{"name":"/dev/null","type":8}'
     file = deserialize(File, serialized, protocol=Protocol.JSON)
     self.assertEqual(
         "Struct.isset(<File>, name=True, permissions=False, type=True)",
         # pyre-fixme[6]: Expected `HasIsSet[Variable[thrift.py3.types._T]]` for
         #  1st param but got `File`.
         repr(Struct.isset(file)),
     )
     self.assertEqual(
         "Struct.isset(<File>, name=True, permissions=False, type=True)",
         # pyre-fixme[6]: Expected `HasIsSet[Variable[thrift.py3.types._T]]` for
         #  1st param but got `File`.
         str(Struct.isset(file)),
     )
Beispiel #6
0
 def test_update_invalid_nested_fields(self) -> None:
     n = Nested1(a=Nested2(b=Nested3(c=easy(val=42, name="foo"))))
     with self.assertRaises(ValueError):
         Struct.update_nested_field(n, {"": 0})
     with self.assertRaises(ValueError):
         Struct.update_nested_field(n, {"e": 0})
     with self.assertRaises(ValueError):
         Struct.update_nested_field(n, {"a.b.e": 0})
     with self.assertRaises(ValueError):
         Struct.update_nested_field(n, {"a.e.f": 0})
Beispiel #7
0
 def test_update_conflicting_nested_fields(self) -> None:
     n = Nested1(a=Nested2(b=Nested3(c=easy(val=42, name="foo"))))
     with self.assertRaises(ValueError):
         n = Struct.update_nested_field(
             n,
             {
                 "a.b.c": easy(val=128),
                 "a.b.c.val": 256,
             },
         )
Beispiel #8
0
    def test_isset_Struct(self) -> None:
        serialized = b'{"name":"/dev/null","type":8}'
        file = deserialize(File, serialized, protocol=Protocol.JSON)
        # pyre-fixme[6]: Expected `HasIsSet[Variable[thrift.py3.types._T]]` for 1st
        #  param but got `File`.
        self.assertTrue(Struct.isset(file).type)
        # pyre-fixme[6]: Expected `HasIsSet[Variable[thrift.py3.types._T]]` for 1st
        #  param but got `File`.
        self.assertFalse(Struct.isset(file).permissions)
        # required fields are always set
        # pyre-fixme[6]: Expected `HasIsSet[Variable[thrift.py3.types._T]]` for 1st
        #  param but got `File`.
        self.assertTrue(Struct.isset(file).name)

        serialized = b'{"name":"/dev/null"}'
        file = deserialize(File, serialized, protocol=Protocol.JSON)
        self.assertEqual(file.type, Kind.REGULAR)
        # pyre-fixme[6]: Expected `HasIsSet[Variable[thrift.py3.types._T]]` for 1st
        #  param but got `File`.
        self.assertFalse(Struct.isset(file).type)
Beispiel #9
0
 def test_update_multiple_nested_fields(self) -> None:
     n = Nested1(a=Nested2(b=Nested3(c=easy(val=42, name="foo"))))
     n = Struct.update_nested_field(
         n,
         {
             "a.b.c.name": "bar",
             "a.b.c.val": 256,
         },
     )
     self.assertEqual(n.a.b.c.name, "bar")
     self.assertEqual(n.a.b.c.val, 256)
Beispiel #10
0
    def test_isset_Error(self) -> None:
        e = UnusedError()
        self.assertFalse(Struct.isset(e).message)

        e = UnusedError(message="ACK")
        self.assertTrue(Struct.isset(e).message)
Beispiel #11
0
 def test_isset_Union(self) -> None:
     i = Integers(large=2)
     with self.assertRaises(TypeError):
         Struct.isset(i).large
Beispiel #12
0
 def test_isset_Union(self) -> None:
     i = Integers(large=2)
     with self.assertRaises(TypeError):
         # pyre-fixme[6]: Expected `HasIsSet[Variable[thrift.py3.types._T]]` for
         #  1st param but got `Integers`.
         Struct.isset(i).large
Beispiel #13
0
 def test_update_nested_fields(self) -> None:
     n = Nested1(a=Nested2(b=Nested3(c=easy(val=42, name="foo"))))
     n = Struct.update_nested_field(n, {"a.b.c": easy(val=128)})
     self.assertEqual(n.a.b.c.val, 128)