def parse(self, value): return Mask(value)
def test_support_dash(self): assert Mask('field-name') == {'field-name': True}
def test_support_underscore(self): assert Mask('field_name') == {'field_name': True}
def test_unexpected_closing_bracket(self): with pytest.raises(mask.ParseError): Mask('{field}}')
def test_support_colons(self): assert Mask('field:name') == {'field:name': True}
def test_one_field(self): assert Mask('field_name') == {'field_name': True}
def test_support_colons(self): self.assertEqual(Mask('field:name'), {'field:name': True})
def test_consecutive_coma(self): with self.assertRaises(mask.ParseError): Mask('field,,')
def test_coma_before_bracket(self): with self.assertRaises(mask.ParseError): Mask('field,{}')
def test_one_field(self): self.assertEqual(Mask('field_name'), {'field_name': True})
def test_missing_closing_bracket(self): with self.assertRaises(mask.ParseError): Mask('nested{')
def test_empty_mask(self): self.assertEqual(Mask(''), {})
def test_support_underscore(self): self.assertEqual(Mask('field_name'), {'field_name': True})
def test_support_dash(self): self.assertEqual(Mask('field-name'), {'field-name': True})
def parse(self, value): return Mask('{' + value + '}')
def test_coma_after_bracket(self): with self.assertRaises(mask.ParseError): Mask('nested{,}')
def test_empty_mask(self): assert Mask('') == {}
def test_unexpected_closing_bracket(self): with self.assertRaises(mask.ParseError): Mask('{field}}')
def test_missing_closing_bracket(self): with pytest.raises(mask.ParseError): Mask('nested{')
platform_group = Model( "Platform Group", { "id": fields.Integer, "name": fields.String, "platforms": fields.List(fields.Nested(platform_base)), }, mask="id,name,platforms{id,type,slug,name,country}", ) platform = platform_base.clone( "Platform", {"group": fields.Nested(platform_group, allow_null=True)} ) # It works, alright? platform.__mask__ = Mask("id,type,slug,name,country,group{id,name}") scrap = Model( "Scrap", { "id": fields.Integer, "date": fields.DateTime, "status": fields.String(choice=[str(s) for s in ScrapStatus]), "platform": fields.Nested(platform), "stats": fields.Raw(), }, mask="id,date,status,platform{id,name,slug}", )