Example #1
0
    def test_auto(self):
        binary_data = 'テスト'.encode('cp932')

        schema = GenericSchema({}, GenericSchema.AUTO)
        d = schema.transform({
            'k1': '123',
            'k2': 456,
            'k3': '789'.encode(),
            'k4': 'xxx'.encode(),
            'k5': binary_data,
            'k6': True,
            'k7': False,
        })

        self.assertEqual({
            'k1': '123',
            'k6': '1',
            'k7': '0'
        }, dict(d.string_values))
        self.assertEqual({'k2': 456}, dict(d.num_values))
        self.assertEqual(
            {
                'k3': '789'.encode(),
                'k4': 'xxx'.encode(),
                'k5': binary_data
            }, dict(d.binary_values))
Example #2
0
    def test_alias(self):
        schema = GenericSchema({
            'k1': GenericSchema.NUMBER,
            'k2': (GenericSchema.NUMBER, 'alias_name'),
        })
        d = schema.transform({
            'k1': '123',
            'k2': 456,
        })

        self.assertEqual({'k1': 123, 'alias_name': 456}, dict(d.num_values))
Example #3
0
  def test_alias(self):
    schema = GenericSchema({
      'k1': GenericSchema.NUMBER,
      'k2': (GenericSchema.NUMBER, 'alias_name'),
    })
    d = schema.transform({
      'k1': '123',
      'k2': 456,
    })

    self.assertEqual({'k1': 123, 'alias_name': 456}, dict(d.num_values))
Example #4
0
    def test_fallback(self):
        schema = GenericSchema({
            'k1': GenericSchema.STRING,
        }, GenericSchema.NUMBER)
        d = schema.transform({
            'k1': '123',
            'k2': 456,
            'k3': 789,
        })

        self.assertEqual({'k1': '123'}, dict(d.string_values))
        self.assertEqual({'k2': 456, 'k3': 789}, dict(d.num_values))
Example #5
0
  def test_ignore(self):
    schema = GenericSchema({
      'k1': GenericSchema.NUMBER,
    }, GenericSchema.IGNORE)
    d = schema.transform({
      'k1': '123',
      'k2': 456,
    })

    self.assertEqual({}, dict(d.string_values))
    self.assertEqual({'k1': 123}, dict(d.num_values))
    self.assertEqual({}, dict(d.binary_values))
Example #6
0
    def test_ignore(self):
        schema = GenericSchema({
            'k1': GenericSchema.NUMBER,
        }, GenericSchema.IGNORE)
        d = schema.transform({
            'k1': '123',
            'k2': 456,
        })

        self.assertEqual({}, dict(d.string_values))
        self.assertEqual({'k1': 123}, dict(d.num_values))
        self.assertEqual({}, dict(d.binary_values))
Example #7
0
  def test_fallback(self):
    schema = GenericSchema({
      'k1': GenericSchema.STRING,
    }, GenericSchema.NUMBER)
    d = schema.transform({
      'k1': '123',
      'k2': 456,
      'k3': 789,
    })

    self.assertEqual({'k1': '123'}, dict(d.string_values))
    self.assertEqual({'k2': 456, 'k3': 789}, dict(d.num_values))
Example #8
0
    def test_null(self):
        schema = GenericSchema({
            'k1': GenericSchema.STRING,
            'k2': GenericSchema.NUMBER,
        })
        d = schema.transform({
            'k1': None,
            'k2': None,
        })

        self.assertEqual({}, dict(d.string_values))
        self.assertEqual({}, dict(d.num_values))
Example #9
0
    def test_numpy(self):
        schema = GenericSchema({
            'k1': GenericSchema.STRING,
            'k2': GenericSchema.NUMBER,
        })
        d = schema.transform({
            'k1': np.float64(1.0),
            'k2': np.float64(1.0),
        })

        self.assertEqual({'k1': '1.0'}, dict(d.string_values))
        self.assertEqual({'k2': 1.0}, dict(d.num_values))
Example #10
0
  def test_null(self):
    schema = GenericSchema({
      'k1': GenericSchema.STRING,
      'k2': GenericSchema.NUMBER,
    })
    d = schema.transform({
      'k1': None,
      'k2': None,
    })

    self.assertEqual({}, dict(d.string_values))
    self.assertEqual({}, dict(d.num_values))
Example #11
0
  def test_numpy(self):
    schema = GenericSchema({
      'k1': GenericSchema.STRING,
      'k2': GenericSchema.NUMBER,
    })
    d = schema.transform({
      'k1': np.float64(1.0),
      'k2': np.float64(1.0),
    })

    self.assertEqual({'k1': '1.0'}, dict(d.string_values))
    self.assertEqual({'k2': 1.0}, dict(d.num_values))
Example #12
0
    def test_empty(self):
        schema = GenericSchema({
            'k1': GenericSchema.STRING,
            'k2': GenericSchema.NUMBER,
            'k3': GenericSchema.NUMBER,
        })
        d = schema.transform({
            'k1': '',
            'k2': '',
            'k3': b'',
        })

        self.assertEqual({'k1': ''}, dict(d.string_values))
        self.assertEqual({}, dict(d.num_values))
Example #13
0
  def test_empty(self):
    schema = GenericSchema({
      'k1': GenericSchema.STRING,
      'k2': GenericSchema.NUMBER,
      'k3': GenericSchema.NUMBER,
    })
    d = schema.transform({
      'k1': '',
      'k2': '',
      'k3': b'',
    })

    self.assertEqual({'k1': ''}, dict(d.string_values))
    self.assertEqual({}, dict(d.num_values))
Example #14
0
  def test_simple(self):
    schema = GenericSchema({
      'k1': GenericSchema.STRING,
      'k2': GenericSchema.NUMBER,
      'k3': GenericSchema.BINARY,
    })
    d = schema.transform({
      'k1': '123',
      'k2': 456,
      'k3': 'xxx'.encode(),
    })

    self.assertEqual({'k1': '123'}, dict(d.string_values))
    self.assertEqual({'k2': 456}, dict(d.num_values))
    self.assertEqual({'k3': 'xxx'.encode()}, dict(d.binary_values))
Example #15
0
    def test_simple(self):
        schema = GenericSchema({
            'k1': GenericSchema.STRING,
            'k2': GenericSchema.NUMBER,
            'k3': GenericSchema.BINARY,
        })
        d = schema.transform({
            'k1': '123',
            'k2': 456,
            'k3': 'xxx'.encode(),
        })

        self.assertEqual({'k1': '123'}, dict(d.string_values))
        self.assertEqual({'k2': 456}, dict(d.num_values))
        self.assertEqual({'k3': 'xxx'.encode()}, dict(d.binary_values))
Example #16
0
  def test_infer(self):
    binary_data = 'テスト'.encode('cp932')

    schema = GenericSchema({}, GenericSchema.INFER)
    d = schema.transform({
      'k1': '123',
      'k2': 456,
      'k3': '789'.encode(),
      'k4': 'xxx'.encode(),
      'k5': binary_data,
      'k6': True,
      'k7': False,
    })

    self.assertEqual({'k4': 'xxx', 'k6': '1', 'k7': '0'}, dict(d.string_values))
    self.assertEqual({'k1': 123, 'k2': 456, 'k3': 789}, dict(d.num_values))
    self.assertEqual({'k5': binary_data}, dict(d.binary_values))
Example #17
0
 def test_number(self):
   schema = GenericSchema({}, GenericSchema.NUMBER)
   d = schema.transform({
     'k1': '123'.encode(),  # bytes
     'k2': '456',  # unicode
     'k3': 789,  # int
     'k4': 789.0,  # float
     'k5': True,  # bool
     'k6': False,  # bool
   })
   self.assertEqual({
     'k1': 123.0,
     'k2': 456.0,
     'k3': 789.0,
     'k4': 789.0,
     'k5': 1.0,
     'k6': 0.0,
   }, dict(d.num_values))
   self.assertEqual({}, dict(d.string_values))
   self.assertEqual({}, dict(d.binary_values))
Example #18
0
 def test_string(self):
   schema = GenericSchema({}, GenericSchema.STRING)
   d = schema.transform({
     'k1': '123'.encode(),  # bytes
     'k2': '456',  # unicode
     'k3': 789,  # int
     'k4': 789.0,  # float
     'k5': True,  # bool
     'k6': False,  # bool
   })
   self.assertEqual({
     'k1': '123',
     'k2': '456',
     'k3': '789',
     'k4': '789.0',
     'k5': '1',
     'k6': '0',
   }, dict(d.string_values))
   self.assertEqual({}, dict(d.num_values))
   self.assertEqual({}, dict(d.binary_values))
Example #19
0
  def test_auto(self):
    binary_data = 'テスト'.encode('cp932')

    schema = GenericSchema({
      'k1': GenericSchema.AUTO,
      'k2': GenericSchema.AUTO,
      'k3': GenericSchema.AUTO,
      'k4': GenericSchema.AUTO,
      'k5': GenericSchema.AUTO,
    })
    d = schema.transform({
      'k1': '123',
      'k2': 456,
      'k3': '789'.encode(),
      'k4': 'xxx'.encode(),
      'k5': binary_data,
    })

    self.assertEqual({'k1': '123'}, dict(d.string_values))
    self.assertEqual({'k2': 456}, dict(d.num_values))
    self.assertEqual({'k3': '789'.encode(), 'k4': 'xxx'.encode(), 'k5': binary_data}, dict(d.binary_values))
Example #20
0
 def test_string(self):
     schema = GenericSchema({}, GenericSchema.STRING)
     d = schema.transform({
         'k1': '123'.encode(),  # bytes
         'k2': '456',  # unicode
         'k3': 789,  # int
         'k4': 789.0,  # float
         'k5': True,  # bool
         'k6': False,  # bool
     })
     self.assertEqual(
         {
             'k1': '123',
             'k2': '456',
             'k3': '789',
             'k4': '789.0',
             'k5': '1',
             'k6': '0',
         }, dict(d.string_values))
     self.assertEqual({}, dict(d.num_values))
     self.assertEqual({}, dict(d.binary_values))
Example #21
0
 def test_number(self):
     schema = GenericSchema({}, GenericSchema.NUMBER)
     d = schema.transform({
         'k1': '123'.encode(),  # bytes
         'k2': '456',  # unicode
         'k3': 789,  # int
         'k4': 789.0,  # float
         'k5': True,  # bool
         'k6': False,  # bool
     })
     self.assertEqual(
         {
             'k1': 123.0,
             'k2': 456.0,
             'k3': 789.0,
             'k4': 789.0,
             'k5': 1.0,
             'k6': 0.0,
         }, dict(d.num_values))
     self.assertEqual({}, dict(d.string_values))
     self.assertEqual({}, dict(d.binary_values))
Example #22
0
  def test_infer(self):
    binary_data = 'テスト'.encode('cp932')

    schema = GenericSchema({
      'k1': GenericSchema.INFER,
      'k2': GenericSchema.INFER,
      'k3': GenericSchema.INFER,
      'k4': GenericSchema.INFER,
      'k5': GenericSchema.INFER,
    })
    d = schema.transform({
      'k1': '123',
      'k2': 456,
      'k3': '789'.encode(),
      'k4': 'xxx'.encode(),
      'k5': binary_data,
    })

    self.assertEqual({'k4': 'xxx'}, dict(d.string_values))
    self.assertEqual({'k1': 123, 'k2': 456, 'k3': 789}, dict(d.num_values))
    self.assertEqual({'k5': binary_data}, dict(d.binary_values))