本文整理汇总了Python中helpers.FakeArgs.inputs方法的典型用法代码示例。如果您正苦于以下问题:Python FakeArgs.inputs方法的具体用法?Python FakeArgs.inputs怎么用?Python FakeArgs.inputs使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类helpers.FakeArgs
的用法示例。
在下文中一共展示了FakeArgs.inputs方法的15个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的Python代码示例。
示例1: test_pure_policies
# 需要导入模块: from helpers import FakeArgs [as 别名]
# 或者: from helpers.FakeArgs import inputs [as 别名]
def test_pure_policies(self):
xproto = \
"""
policy my_policy < exists x:a=b >
"""
proto = \
"""
option my_policy = "policy:< exists x:a=b >";
"""
target = XProtoTestHelpers.write_tmp_target(
"""
{{ policies }}
""")
args_xproto = FakeArgs()
args_xproto.inputs = xproto
args_xproto.target = target
xproto_gen = XOSGenerator.generate(args_xproto)
args_proto = FakeArgs()
args_proto.inputs = proto
args_proto.target = target
args_proto.rev = True
proto_gen = XOSGenerator.generate(args_proto)
self.assertEqual(proto_gen, xproto_gen)
示例2: test_basic_proto
# 需要导入模块: from helpers import FakeArgs [as 别名]
# 或者: from helpers.FakeArgs import inputs [as 别名]
def test_basic_proto(self):
xtarget = XProtoTestHelpers.write_tmp_target("{{ proto }}")
xproto = \
"""
message Person {
required string name = 1;
required int32 id = 2; // Unique ID number for this person.
optional string email = 3 [symphony = "da da da dum"];
enum PhoneType {
MOBILE = 0;
HOME = 1;
WORK = 2;
}
required string number = 1;
optional PhoneType type = 2;
repeated PhoneNumber phones = 4;
}
"""
args = FakeArgs()
args.inputs = xproto
args.target = xtarget
output = XOSGenerator.generate(args)
self.assertIn("PhoneNumber", output)
示例3: test_instance_container
# 需要导入模块: from helpers import FakeArgs [as 别名]
# 或者: from helpers.FakeArgs import inputs [as 别名]
def test_instance_container(self):
xproto = \
"""
policy test_policy < (obj.isolation = "container" | obj.isolation = "container_vm" ) -> (obj.image.kind = "container") >
"""
args = FakeArgs()
args.inputs = xproto
args.target = self.target
output = XOSGenerator.generate(args)
obj = FakeArgs()
obj.isolation = 'container'
obj.kind = 'not a container'
exec(output) # This loads the generated function, which should look like this:
"""
def policy_output_validator(obj, ctx):
i4 = (obj.isolation == 'container')
i5 = (self.isolation == 'container_vm')
i2 = (i4 or i5)
i3 = (obj.image.kind == 'container')
i1 = (i2 or i3)
return i1
"""
with self.assertRaises(Exception):
policy_output_validator(obj, {})
示例4: test_field_graph
# 需要导入模块: from helpers import FakeArgs [as 别名]
# 或者: from helpers.FakeArgs import inputs [as 别名]
def test_field_graph(self):
xproto = \
"""
message VRouterDevice (PlCoreBase){
optional string name = 1 [help_text = "device friendly name", max_length = 20, null = True, db_index = False, blank = True, unique_with="openflow_id"];
required string openflow_id = 2 [help_text = "device identifier in ONOS", max_length = 20, null = False, db_index = False, blank = False, unique_with="name"];
required string config_key = 3 [default = "basic", max_length = 32, blank = False, help_text = "configuration key", null = False, db_index = False, unique_with="driver"];
required string driver = 4 [help_text = "driver type", max_length = 32, null = False, db_index = False, blank = False, unique_with="vrouter_service"];
required manytoone vrouter_service->VRouterService:devices = 5 [db_index = True, null = False, blank = False];
required string A = 6 [unique_with="B"];
required string B = 7 [unique_with="C"];
required string C = 8 [unique_with="A"];
required string D = 9;
required string E = 10 [unique_with="F,G"];
required string F = 11;
required string G = 12;
}
"""
target = XProtoTestHelpers.write_tmp_target(
"""
{{ xproto_field_graph_components(proto.messages.0.fields) }}
""")
args = FakeArgs()
args.inputs = xproto
args.target = target
output = XOSGenerator.generate(args)
output = eval(output)
self.assertIn({'A','B','C'}, output)
self.assertIn({'openflow_id','name'}, output)
self.assertIn({'config_key','vrouter_service','driver'}, output)
self.assertIn({'E','F','G'}, output)
union = reduce(lambda acc,x: acc | x, output)
self.assertNotIn('D', union)
示例5: test_pluralize
# 需要导入模块: from helpers import FakeArgs [as 别名]
# 或者: from helpers.FakeArgs import inputs [as 别名]
def test_pluralize(self):
proto = \
"""
message TestPluralize {
// The following field has an explicitly specified plural
required int anecdote = 1 [plural = "data"];
// The following fields have automatically computed plurals
required int sheep = 2;
required int radius = 2;
required int slice = 2;
required int network = 2;
required int omf_friendly = 2;
}
"""
target = XProtoTestHelpers.write_tmp_target(
"""
{% for m in proto.messages.0.fields -%}
{{ xproto_pluralize(m) }},
{%- endfor %}
""")
args = FakeArgs()
args.inputs = proto
args.target = target
output = XOSGenerator.generate(args)
self.assertEqual("data,sheep,radii,slices,networks,omf_friendlies", output.lstrip().rstrip().rstrip(','))
示例6: test_slice_name_validation
# 需要导入模块: from helpers import FakeArgs [as 别名]
# 或者: from helpers.FakeArgs import inputs [as 别名]
def test_slice_name_validation(self):
xproto = \
"""
policy test_policy < not obj.id -> {{ obj.name.startswith(obj.site.login_base) }} >
"""
args = FakeArgs()
args.inputs = xproto
args.target = self.target
output = XOSGenerator.generate(args)
obj = FakeArgs()
obj.isolation = 'container'
obj.kind = 'not a container'
exec(output) # This loads the generated function, which should look like this:
"""
def policy_output_validator(obj, ctx):
i3 = obj.id
i4 = obj.name.startswith(obj.site.login_base)
i2 = ((not i3) or i4)
i1 = (not i2)
if (not i1):
raise ValidationError('Necessary Failure')
"""
with self.assertRaises(Exception):
policy_output_validator(obj, {})
示例7: test_equal
# 需要导入模块: from helpers import FakeArgs [as 别名]
# 或者: from helpers.FakeArgs import inputs [as 别名]
def test_equal(self):
xproto = \
"""
policy output < not (ctx.user = obj.user) >
"""
args = FakeArgs()
args.inputs = xproto
args.target = self.target
output = XOSGenerator.generate(args)
exec(output) # This loads the generated function, which should look like this:
"""
def policy_output_validator(obj, ctx):
i2 = (ctx.user == obj.user)
i1 = (not i2)
if (not i1):
raise Exception('Necessary Failure')
"""
obj = FakeArgs()
obj.user = 1
ctx = FakeArgs()
ctx.user = 1
with self.assertRaises(Exception):
policy_output_validator(obj, ctx)
示例8: test_one_to_many_in_modeldef
# 需要导入模块: from helpers import FakeArgs [as 别名]
# 或者: from helpers.FakeArgs import inputs [as 别名]
def test_one_to_many_in_modeldef(self):
xproto = \
"""
option app_label = "test";
message ServiceDependency {
required manytoone provider_service->Service:provided_dependencies = 1;
required manytoone subscriber_service->Service:subscribed_dependencies = 2;
}
message Service {
required string name = 1;
}
"""
args = FakeArgs()
args.inputs = xproto
args.target = 'modeldefs.xtarget'
output = XOSGenerator.generate(args)
# Service deps model
self.assertIn('{model: Service, type: manytoone, on_field: provider_service}', output)
self.assertIn('{model: Service, type: manytoone, on_field: provider_service}', output)
# Service model
self.assertIn('{model: ServiceDependency, type: onetomany, on_field: provider_service}', output)
self.assertIn('{model: ServiceDependency, type: onetomany, on_field: provider_service}', output)
示例9: test_bin
# 需要导入模块: from helpers import FakeArgs [as 别名]
# 或者: from helpers.FakeArgs import inputs [as 别名]
def test_bin(self):
xproto = \
"""
policy output < (ctx.is_admin = True | obj.empty = True) | False>
"""
args = FakeArgs()
args.inputs = xproto
args.target = self.target
output = XOSGenerator.generate(args)
exec(output) # This loads the generated function, which should look like this:
"""
def policy_output_validator(obj, ctx):
i2 = (ctx.is_admin == True)
i3 = (obj.empty == True)
i1 = (i2 or i3)
if (not i1):
raise Exception('Necessary Failure')
"""
obj = FakeArgs()
obj.empty = False
ctx = FakeArgs()
ctx.is_admin = False
with self.assertRaises(Exception):
verdict = policy_output_validator(obj, ctx)
示例10: test_call_policy
# 需要导入模块: from helpers import FakeArgs [as 别名]
# 或者: from helpers.FakeArgs import inputs [as 别名]
def test_call_policy(self):
xproto = \
"""
policy sub_policy < ctx.user = obj.user >
policy output < *sub_policy(child) >
"""
args = FakeArgs()
args.inputs = xproto
args.target = self.target
output = XOSGenerator.generate(args)
exec(output,globals()) # This loads the generated function, which should look like this:
"""
def policy_sub_policy_enforcer(obj, ctx):
i1 = (ctx.user == obj.user)
return i1
def policy_output_enforcer(obj, ctx):
i1 = policy_sub_policy_enforcer(obj.child, ctx)
return i1
"""
obj = FakeArgs()
obj.child = FakeArgs()
obj.child.user = 1
ctx = FakeArgs()
ctx.user = 1
verdict = policy_output_enforcer(obj, ctx)
self.assertTrue(verdict)
示例11: test_equal
# 需要导入模块: from helpers import FakeArgs [as 别名]
# 或者: from helpers.FakeArgs import inputs [as 别名]
def test_equal(self):
xproto = \
"""
policy output < ctx.user = obj.user >
"""
args = FakeArgs()
args.inputs = xproto
args.target = self.target
output = XOSGenerator.generate(args)
exec(output) # This loads the generated function, which should look like this:
"""
def policy_output_enforcer(obj, ctx):
i1 = (ctx.user == obj.user)
return i1
"""
obj = FakeArgs()
obj.user = 1
ctx = FakeArgs()
ctx.user = 1
verdict = policy_output_enforcer(obj, ctx)
示例12: test_bin
# 需要导入模块: from helpers import FakeArgs [as 别名]
# 或者: from helpers.FakeArgs import inputs [as 别名]
def test_bin(self):
xproto = \
"""
policy output < ctx.is_admin = True | obj.empty = True>
"""
args = FakeArgs()
args.inputs = xproto
args.target = self.target
output = XOSGenerator.generate(args)
exec(output) # This loads the generated function, which should look like this:
"""
def policy_output_enforcer(obj, ctx):
i2 = (ctx.is_admin == True)
i3 = (obj.empty == True)
i1 = (i2 or i3)
return i1
"""
obj = FakeArgs()
obj.empty = True
ctx = FakeArgs()
ctx.is_admin = True
verdict = policy_output_enforcer(obj, ctx)
self.assertTrue(verdict)
示例13: test_user_policy
# 需要导入模块: from helpers import FakeArgs [as 别名]
# 或者: from helpers.FakeArgs import inputs [as 别名]
def test_user_policy(self):
xproto = \
"""
policy test_policy <
ctx.user.is_admin
| ctx.user.id = obj.id
| (exists Privilege:
Privilege.accessor_id = ctx.user.id
& Privilege.accessor_type = "User"
& Privilege.permission = "role:admin"
& Privilege.object_type = "Site"
& Privilege.object_id = ctx.user.site.id) >
"""
args = FakeArgs()
args.inputs = xproto
args.target = self.target
output = XOSGenerator.generate(args)
exec(output) # This loads the generated function, which should look like this:
"""
def policy_output_enforcer(obj, ctx):
i2 = ctx.user.is_admin
i4 = (ctx.user.id == obj.id)
i5 = Privilege.objects.filter(Q(accessor_id=ctx.user.id), Q(accessor_type='User'), Q(permission='role:admin'), Q(object_type='Site'), Q(object_id=ctx.user.site.id))[0]
i3 = (i4 or i5)
i1 = (i2 or i3)
return i1
"""
# FIXME: Test this policy by executing it
self.assertTrue(policy_output_enforcer is not None)
示例14: test_singularize
# 需要导入模块: from helpers import FakeArgs [as 别名]
# 或者: from helpers.FakeArgs import inputs [as 别名]
def test_singularize(self):
proto = \
"""
message TestSingularize {
// The following field has an explicitly specified singular
required int many = 1 [singular = "one"];
// The following fields have automatically computed singulars
required int sheep = 2;
required int radii = 2;
required int slices = 2;
required int networks = 2;
required int omf_friendlies = 2;
}
"""
target = XProtoTestHelpers.write_tmp_target(
"""
{% for m in proto.messages.0.fields -%}
{{ xproto_singularize(m) }},
{%- endfor %}
""")
args = FakeArgs()
args.inputs = proto
args.target = target
output = XOSGenerator.generate(args)
self.assertEqual("one,sheep,radius,slice,network,omf_friendly", output.lstrip().rstrip().rstrip(','))
示例15: test_xproto_lib
# 需要导入模块: from helpers import FakeArgs [as 别名]
# 或者: from helpers.FakeArgs import inputs [as 别名]
def test_xproto_lib(self):
target = XProtoTestHelpers.write_tmp_target(
"""
{{ xproto_first_non_empty([None, None, None, None, None, None, "Eureka"]) }}
""")
args = FakeArgs()
args.inputs = ''
args.target = target
output = XOSGenerator.generate(args)
self.assertIn("Eureka", output)