From 7695c1616f5692186fe3528c70fd73626b2c8ba9 Mon Sep 17 00:00:00 2001 From: Iuri Matias Date: Sat, 13 Jun 2015 09:02:19 -0400 Subject: [PATCH] move test code into module --- boilerplate/spec/test.js | 68 +------------------------------------ index.js | 7 ++++ lib/test.js | 72 ++++++++++++++++++++++++++++++++++++++++ 3 files changed, 80 insertions(+), 67 deletions(-) create mode 100644 lib/test.js diff --git a/boilerplate/spec/test.js b/boilerplate/spec/test.js index 3d522be62..80761f811 100644 --- a/boilerplate/spec/test.js +++ b/boilerplate/spec/test.js @@ -1,70 +1,4 @@ -var python = require('python').shell; -var web3 = require('web3'); -var fs = require('fs'); -var mm = require('methodmissing'); -var sync = require('sync-me'); - -py_exec = function(cmd) { - console.log("python: " + cmd); - return sync(python, cmd)[1]; -} - -py_exec("from ethertdd import EvmContract") - -web3.setProvider(new web3.providers.HttpProvider('http://localhost:8101')); -web3.eth.defaultAccount = web3.eth.accounts[0]; - -TestContractWrapper = (function() { - function TestContractWrapper(contract, className) { - this.contract = contract; - this.className = className; - this.initializeContract(); - } - - TestContractWrapper.prototype.initializeContract = function() { - example_abi = JSON.stringify(contract.info.abiDefinition) - example_binary = contract.code.slice(2) - - py_exec("example_abi = '" + example_abi + "'") - py_exec("example_abi") - py_exec("example_binary = '" + example_binary + "'.decode('hex')") - py_exec("example_binary") - py_exec(className + "_contract = EvmContract(example_abi, example_binary)") - - this.contractVariable = className + "_contract" - }; - - TestContractWrapper.prototype.execCmd = function(method, args) { - arg_list = []; - for (key in args) { - value = args[key]; - arg_list.push(value); - } - - data = py_exec(this.className + "_contract." + method + "(" + arg_list.join(",") + ")"); - console.log("res: " + data); - return data; - }; - - return TestContractWrapper; - -})(); - -TestContract = function(contract, className) { - var wrapper = new TestContractWrapper(contract, className); - var Obj = mm(wrapper, function (key, args) { - return wrapper.execCmd(key, args); - }); - return Obj; -} - -filename = './app/contracts/simple_storage.sol' -source = fs.readFileSync(filename).toString() -className = 'SimpleStorage' - -compiled_contracts = web3.eth.compile.solidity(source) -contract = compiled_contracts[className] -SimpleStorage = TestContract(contract, className) +SimpleStorage = require('embark-framework').Tests(); SimpleStorage.set(100); diff --git a/index.js b/index.js index 6265f352e..9399551ba 100644 --- a/index.js +++ b/index.js @@ -7,3 +7,10 @@ var express = require('express'); var compression = require('compression'); var commander = require('commander'); var wrench = require('wrench'); +console.log("embark required"); + +embark = {} +embark.Tests = require('./lib/test.js'); + +module.exports = embark; + diff --git a/lib/test.js b/lib/test.js new file mode 100644 index 000000000..2ee638715 --- /dev/null +++ b/lib/test.js @@ -0,0 +1,72 @@ +var python = require('python').shell; +var web3 = require('web3'); +var fs = require('fs'); +var mm = require('methodmissing'); +var sync = require('sync-me'); + +py_exec = function(cmd) { + console.log("python: " + cmd); + return sync(python, cmd)[1]; +} + +py_exec("from ethertdd import EvmContract") + +web3.setProvider(new web3.providers.HttpProvider('http://localhost:8101')); +web3.eth.defaultAccount = web3.eth.accounts[0]; + +TestContractWrapper = (function() { + function TestContractWrapper(contract, className) { + this.contract = contract; + this.className = className; + this.initializeContract(); + } + + TestContractWrapper.prototype.initializeContract = function() { + example_abi = JSON.stringify(contract.info.abiDefinition) + example_binary = contract.code.slice(2) + + py_exec("example_abi = '" + example_abi + "'") + py_exec("example_abi") + py_exec("example_binary = '" + example_binary + "'.decode('hex')") + py_exec("example_binary") + py_exec(className + "_contract = EvmContract(example_abi, example_binary)") + + this.contractVariable = className + "_contract" + }; + + TestContractWrapper.prototype.execCmd = function(method, args) { + arg_list = []; + for (key in args) { + value = args[key]; + arg_list.push(value); + } + + data = py_exec(this.className + "_contract." + method + "(" + arg_list.join(",") + ")"); + console.log("res: " + data); + return data; + }; + + return TestContractWrapper; + +})(); + +TestContract = function(contract, className) { + var wrapper = new TestContractWrapper(contract, className); + var Obj = mm(wrapper, function (key, args) { + return wrapper.execCmd(key, args); + }); + return Obj; +} + +SimpleStorage = function() { + filename = './app/contracts/simple_storage.sol' + source = fs.readFileSync(filename).toString() + className = 'SimpleStorage' + + compiled_contracts = web3.eth.compile.solidity(source) + contract = compiled_contracts[className] + return TestContract(contract, className) +} + +module.exports = SimpleStorage; +