def visitBoolean_literal(self, ctx: RSQLParser.Boolean_literalContext):
     if ctx.TRUE():
         return Vars.const(True)
     elif ctx.FALSE():
         return Vars.const(False)
     else:
         raise NotImplementedError(ctx)
 def visitNumeric_literal(self, ctx: RSQLParser.Numeric_literalContext):
     textual = ctx.getText()
     if ctx.DECIMAL_LITERAL():
         return Vars.const(float(textual))
     elif ctx.INT_LITERAL():
         return Vars.const(int(textual))
     else:
         raise NotImplementedError(ctx)
 def test_set_and(self):
     expected = {
         'a': 2,
         'b': 3,
     }
     obj = {
         'a': 1
     }
     setter = Setters.key('a', Vars.const(2)) & Setters.key('b', Vars.const(3))
     result = setter(obj)
     self.assertEqual(result, expected)
Example #4
0
 def test_update_all(self):
     file_repository = InMemoryRepository(
         pk_factory=Vars.key('name'),
         initial_data=self.sample_content,
     )
     file_repository.update(
         Setters.key('name',
                     Vars.const('Updated ') + Vars.key('name')), )
 def test_set_with_dynamic(self):
     expected = {
         'a': 2,
         'b': 1,
     }
     obj = {
         'a': 1
     }
     setter = Setters.key('b', Vars.key('a')) & Setters.key('a', Vars.const(2))
     result = setter(obj)
     self.assertEqual(result, expected)
 def test_set_with_const(self):
     expected = {'a': 2}
     obj = {'a': 1}
     setter = Setters.key('a', Vars.const(2))
     result = setter(obj)
     self.assertEqual(result, expected)
 def test_ne_same_const(self):
     var = Vars.const('const') != Vars.const('const')
     optimized_var = var.optimize()
     self.assertTrue(Const.is_false(optimized_var))
 def test_eq_same_const(self):
     var = Vars.const('const') == Vars.const('const')
     optimized_var = var.optimize()
     self.assertTrue(Const.is_true(optimized_var))
 def test_false_and(self):
     var = Vars.const(False) & Vars.key('any')
     optimized_var = var.optimize()
     self.assertTrue(Const.is_false(optimized_var))
 def test_or_true(self):
     var = Vars.key('any') | Vars.const(True)
     optimized_var = var.optimize()
     self.assertTrue(Const.is_true(optimized_var))
 def visitString_literal(self, ctx: RSQLParser.String_literalContext):
     if ctx.STRING_LITERAL():
         return Vars.const(ast.literal_eval(ctx.getText()))
     else:
         raise NotImplementedError(ctx)
 def visitArray_value(self, ctx: RSQLParser.Array_valueContext):
     return Vars.const(tuple([self.visit(value) for value in ctx.value()]))