text: #!/usr/bin/env python
  # Copyright (c) Facebook, Inc. and its affiliates.
  #
  # Licensed under the Apache License, Version 2.0 (the "License");
  # you may not use this file except in compliance with the License.
  # You may obtain a copy of the License at
  #
  #     http://www.apache.org/licenses/LICENSE-2.0
  #
  # Unless required by applicable law or agreed to in writing, software
  # distributed under the License is distributed on an "AS IS" BASIS,
  # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
  # See the License for the specific language governing permissions and
  # limitations under the License.
  
  from __future__ import absolute_import, division, print_function, unicode_literals
  
  import unittest
  
  from thrift.test.py.kwargs.ttypes import Foo
  
  
  class KwargsTest(unittest.TestCase):
      def test_initializer(self):
          foo = Foo(
              **{
                  "field1": 1,
                  "field2": 2,
                  "field3": 3,
                  "field4": 4,
                  "field5": 5,
                  "field6": 6,
                  "field7": 7,
                  "field8": 8,
                  "field9": 9,
                  "field10": 10,
                  "field11": 11,
                  "field12": 12,
                  "field13": 13,
                  "field14": 14,
                  "field15": 15,
                  "field16": 16,
                  "field17": 17,
                  "field18": 18,
                  "field19": 19,
                  "field20": 20,
                  "field21": 21,
                  "field22": 22,
                  "field23": 23,
                  "field24": 24,
                  "field25": 25,
                  "field26": 26,
                  "field27": 27,
                  "field28": 28,
                  "field29": 29,
                  "field30": 30,
                  "field31": 31,
                  "field32": 32,
                  "field33": 33,
                  "field34": 34,
                  "field35": 35,
                  "field36": 36,
                  "field37": 37,
                  "field38": 38,
                  "field39": 39,
                  "field40": 40,
                  "field41": 41,
                  "field42": 42,
                  "field43": 43,
                  "field44": 44,
                  "field45": 45,
                  "field46": 46,
                  "field47": 47,
                  "field48": 48,
                  "field49": 49,
                  "field50": 50,
                  "field51": 51,
                  "field52": 52,
                  "field53": 53,
                  "field54": 54,
                  "field55": 55,
                  "field56": 56,
                  "field57": 57,
                  "field58": 58,
                  "field59": 59,
                  "field60": 60,
                  "field61": 61,
                  "field62": 62,
                  "field63": 63,
                  "field64": 64,
                  "field65": 65,
                  "field66": 66,
                  "field67": 67,
                  "field68": 68,
                  "field69": 69,
                  "field70": 70,
                  "field71": 71,
                  "field72": 72,
                  "field73": 73,
                  "field74": 74,
                  "field75": 75,
                  "field76": 76,
                  "field77": 77,
                  "field78": 78,
                  "field79": 79,
                  "field80": 80,
                  "field81": 81,
                  "field82": 82,
                  "field83": 83,
                  "field84": 84,
                  "field85": 85,
                  "field86": 86,
                  "field87": 87,
                  "field88": 88,
                  "field89": 89,
                  "field90": 90,
                  "field91": 91,
                  "field92": 92,
                  "field93": 93,
                  "field94": 94,
                  "field95": 95,
                  "field96": 96,
                  "field97": 97,
                  "field98": 98,
                  "field99": 99,
                  "field100": 100,
                  "field101": 101,
                  "field102": 102,
                  "field103": 103,
                  "field104": 104,
                  "field105": 105,
                  "field106": 106,
                  "field107": 107,
                  "field108": 108,
                  "field109": 109,
                  "field110": 110,
                  "field111": 111,
                  "field112": 112,
                  "field113": 113,
                  "field114": 114,
                  "field115": 115,
                  "field116": 116,
                  "field117": 117,
                  "field118": 118,
                  "field119": 119,
                  "field120": 120,
                  "field121": 121,
                  "field122": 122,
                  "field123": 123,
                  "field124": 124,
                  "field125": 125,
                  "field126": 126,
                  "field127": 127,
                  "field128": 128,
                  "field129": 129,
                  "field130": 130,
                  "field131": 131,
                  "field132": 132,
                  "field133": 133,
                  "field134": 134,
                  "field135": 135,
                  "field136": 136,
                  "field137": 137,
                  "field138": 138,
                  "field139": 139,
                  "field140": 140,
                  "field141": 141,
                  "field142": 142,
                  "field143": 143,
                  "field144": 144,
                  "field145": 145,
                  "field146": 146,
                  "field147": 147,
                  "field148": 148,
                  "field149": 149,
                  "field150": 150,
                  "field151": 151,
                  "field152": 152,
                  "field153": 153,
                  "field154": 154,
                  "field155": 155,
                  "field156": 156,
                  "field157": 157,
                  "field158": 158,
                  "field159": 159,
                  "field160": 160,
                  "field161": 161,
                  "field162": 162,
                  "field163": 163,
                  "field164": 164,
                  "field165": 165,
                  "field166": 166,
                  "field167": 167,
                  "field168": 168,
                  "field169": 169,
                  "field170": 170,
                  "field171": 171,
                  "field172": 172,
                  "field173": 173,
                  "field174": 174,
                  "field175": 175,
                  "field176": 176,
                  "field177": 177,
                  "field178": 178,
                  "field179": 179,
                  "field180": 180,
                  "field181": 181,
                  "field182": 182,
                  "field183": 183,
                  "field184": 184,
                  "field185": 185,
                  "field186": 186,
                  "field187": 187,
                  "field188": 188,
                  "field189": 189,
                  "field190": 190,
                  "field191": 191,
                  "field192": 192,
                  "field193": 193,
                  "field194": 194,
                  "field195": 195,
                  "field196": 196,
                  "field197": 197,
                  "field198": 198,
                  "field199": 199,
                  "field200": 200,
                  "field201": 201,
                  "field202": 202,
                  "field203": 203,
                  "field204": 204,
                  "field205": 205,
                  "field206": 206,
                  "field207": 207,
                  "field208": 208,
                  "field209": 209,
                  "field210": 210,
                  "field211": 211,
                  "field212": 212,
                  "field213": 213,
                  "field214": 214,
                  "field215": 215,
                  "field216": 216,
                  "field217": 217,
                  "field218": 218,
                  "field219": 219,
                  "field220": 220,
                  "field221": 221,
                  "field222": 222,
                  "field223": 223,
                  "field224": 224,
                  "field225": 225,
                  "field226": 226,
                  "field227": 227,
                  "field228": 228,
                  "field229": 229,
                  "field230": 230,
                  "field231": 231,
                  "field232": 232,
                  "field233": 233,
                  "field234": 234,
                  "field235": 235,
                  "field236": 236,
                  "field237": 237,
                  "field238": 238,
                  "field239": 239,
                  "field240": 240,
                  "field241": 241,
                  "field242": 242,
                  "field243": 243,
                  "field244": 244,
                  "field245": 245,
                  "field246": 246,
                  "field247": 247,
                  "field248": 248,
                  "field249": 249,
                  "field250": 250,
                  "field251": 251,
                  "field252": 252,
                  "field253": 253,
                  "field254": 254,
                  "field255": 255,
                  "field256": 256,
              }
          )
          self.assertEqual(255, foo.field255)
          self.assertEqual(256, foo.field256)
  
          foo = Foo(field256=512)
          self.assertEqual(512, foo.field256)
  
      def test_unexpected_argument(self):
          with self.assertRaises(TypeError):
              Foo(field257=257)
  
      def test_default_value(self):
          foo = Foo()
          self.assertEqual(1024, foo.field42)
  
  
  if __name__ == "__main__":
      unittest.main()
  