def test_error_handling(context): "SleepyHollow#evaluate_javascript handles errors" sl = SleepyHollow() script1 = r'''(function(){ return foo; })()''' expect(sl.evaluate_javascript).when.called_with( script1, pedantic=True).to.throw( InvalidJSONError, "'ReferenceError: Can't find variable: foo' undefined:2") sl.evaluate_javascript("'SUCCESS!'").should.equal("SUCCESS!")
def test_error_handling(context): "SleepyHollow#evaluate_javascript handles errors" sl = SleepyHollow() script1 = r'''(function(){ return foo; })()''' expect(sl.evaluate_javascript).when.called_with(script1, pedantic=True).to.throw( InvalidJSONError, "'ReferenceError: Can't find variable: foo' undefined:2" ) sl.evaluate_javascript("'SUCCESS!'").should.equal("SUCCESS!")
def test_decode_complex_object(context): "SleepyHollow#evaluate_javascript maps the type `dict`" sl = SleepyHollow() evaluated = sl.evaluate_javascript(r'''(function(){ var data = {}; data["name"] = "Gabriel Falcão \"gabrielfalcao\""; data["github"] = "http://github.com/gabrielfalcao"; data["projects"] = ["cello", "sleepyhollow"]; data["coder"] = true; data["age"] = 24; data["weight"] = 77.5; data["more"] = null; return data; })()''') expect(evaluated).to.equal({ 'name': 'Gabriel Falcão "gabrielfalcao"', 'github': u'http://github.com/gabrielfalcao', 'projects': [u'cello', u'sleepyhollow'], 'coder': True, 'age': 24, 'weight': 77.5, 'more': "", })
def test_decode_dict(context): "SleepyHollow#evaluate_javascript maps the type `dict`" sl = SleepyHollow() sl.evaluate_javascript(u'(function(){return {name: "GABRIEL FALCÃO".toLowerCase()}})();').should.equal({'name': 'gabriel falcão'})
def test_decode_list(context): "SleepyHollow#evaluate_javascript maps the type `list`" sl = SleepyHollow() sl.evaluate_javascript("['gabriel', 'falcao']").should.equal(['gabriel', 'falcao'])
def test_decode_int(context): "SleepyHollow#evaluate_javascript maps the type `int`" sl = SleepyHollow() sl.evaluate_javascript("1").should.equal(1)
def test_decode_float(context): "SleepyHollow#evaluate_javascript maps the type `float`" sl = SleepyHollow() sl.evaluate_javascript("1.4").should.equal(1.4)
def test_decode_string_with_double_quotes(context): "SleepyHollow#evaluate_javascript maps the type `string` with double quotes" sl = SleepyHollow() sl.evaluate_javascript(r'"\"NICE\""').should.equal('"NICE"')
def test_decode_string(context): "SleepyHollow#evaluate_javascript maps the type `string`" sl = SleepyHollow() sl.evaluate_javascript(r'"GABRIEL\'s".toLowerCase()').should.equal("gabriel's")
def test_error_handling_non_strict(context): "SleepyHollow#evaluate_javascript returns None if code is invalid" sl = SleepyHollow() script1 = r'''(foo)''' expect(sl.evaluate_javascript(script1)).to.be.none
def test_decode_dict(context): "SleepyHollow#evaluate_javascript maps the type `dict`" sl = SleepyHollow() sl.evaluate_javascript( u'(function(){return {name: "GABRIEL FALCÃO".toLowerCase()}})();' ).should.equal({'name': 'gabriel falcão'})
def test_decode_list(context): "SleepyHollow#evaluate_javascript maps the type `list`" sl = SleepyHollow() sl.evaluate_javascript("['gabriel', 'falcao']").should.equal( ['gabriel', 'falcao'])
def test_decode_string(context): "SleepyHollow#evaluate_javascript maps the type `string`" sl = SleepyHollow() sl.evaluate_javascript(r'"GABRIEL\'s".toLowerCase()').should.equal( "gabriel's")