def get(self, scenario_id=None): if not scenario_id: scenario_list = Scenario.read_all() return Response(scenario_list).to_dict() scenario = Scenario.read(scenario_id) return Response(scenario).to_dict()
def tearDown(self): for g in glob.glob('test-*'): os.remove(g) try: Scenario.drop_collection() except: pass
def post(self): parser = reqparse.RequestParser() parser.add_argument('name', location='json', required=True) parser.add_argument('description', location='json') data = parser.parse_args() scenario = Scenario(data['name'], data['description']) scenario.create() return Response(scenario, 201).to_dict()
def put(self, scenario_id): parser = reqparse.RequestParser() parser.add_argument('name', location='json') parser.add_argument('description', location='json') data = parser.parse_args() Functions.validate_params(data) data.update({'id': scenario_id}) scenario = Scenario(data['name'], data['description'], data['id']) scenario.update() return Response(scenario, 200, 'Successfuly updated').to_dict()
def setUp(self): try: Scenario.drop_collection() except: pass self.client = app.test_client() # send requests to server that will edit test/data/parameter.nc raw_data = ''' { "name": "test-scenario-1", "veg_map_by_hru": { "bare_ground": [0, 1, 2, 3, 5, 10, 11], "grasses": [4, 6, 7, 17, 18, 19], "shrubs": [9, 12, 13], "trees": [8, 14, 15, 16], "conifers": [] } } ''' raw_data2 = ''' { "name": "test-scenario-2", "veg_map_by_hru": { "bare_ground": [0, 10, 11], "grasses": [2, 3, 5, 7, 17, 18, 19], "shrubs": [9, 12, 13], "trees": [8, 14, 15, 16], "conifers": [4, 6, 1] } } ''' self.res1 = self.client.post('/api/scenarios', data=raw_data, headers={ 'Content-Type': 'application/json', 'Origin': '*'} ) self.res2 = self.client.post('/api/scenarios', data=raw_data2, headers={ 'Content-Type': 'application/json', 'Origin': '*'} ) self.r1_scenario = json.loads(json.loads(self.res1.data)['scenario']) self.r2_scenario = json.loads(json.loads(self.res2.data)['scenario']) self.id1 = self.r1_scenario['id'] self.id2 = self.r2_scenario['id']
def add_scenario(): checked_title = check_title(request.form['title']) if float(request.form['mezz_debt']) > 0: is_intr_only = to_boolean(request.form['mezz_interest_only']) is_secured = to_boolean(request.form['mezz_secured']) mezz_rate = float(request.form['mezz_rate']) mezz_amort = float(request.form['mezz_amort']) else: is_intr_only = to_boolean('no') is_secured = to_boolean('no') mezz_rate = 1 mezz_amort = 1 scenario = Scenario(checked_title, float(request.form['cash_on_cash']), float(request.form['target_ltv']), float(request.form['mezz_debt']), float(request.form['transfer_cost']), float(request.form['transfer_buyer_share']), float(request.form['recordation_cost']), float(request.form['recordation_buyer_share']), float(request.form['finance']), float(request.form['interest']), float(request.form['amort']), mezz_rate, is_intr_only, is_secured, mezz_amort, float(request.form['income_appr']), float(request.form['apprec_depr']), float(request.form['holding_period']), current_user.id) form = ScenarioForm(obj=scenario) if form.validate(): c = CalcCapRate(scenario.__dict__) result = c.iterate_computation() cap_rate = result['cap_rate'] #print "===cap rate: " + str(cap_rate) scenario.cap_rate = cap_rate db.session.add(scenario) db.session.commit() #flash('New scenario was successfully posted', 'alert alert-info') return redirect(url_for('show_scenarios') + '#results-column') else: print "Advanced calc input not validated." print form.errors return redirect(url_for('show_scenarios'))
def seed_scenarios(data): for exp in data: expansion = Expansion.query.get(exp) for scn in data[exp].get("scenarios"): scenario = Scenario.query.get(scn) or Scenario() scenario.id = scn scenario.name = data[exp]["scenarios"][scn].get("name") scenario.difficulty = data[exp]["scenarios"][scn].get("difficulty") scenario.rules_changes = data[exp]["scenarios"][scn].get( "rules-changes") scenario.setup_changes = data[exp]["scenarios"][scn].get( "setup-changes") expansion.scenarios.append(scenario) for s in data[exp]["scenarios"][scn].get("spirit-handicaps"): spirit = Spirit.query.get(s) spirit_handicap = (SpiritScenarioHandicap.query.filter_by( spirit_id=s).filter_by(scenario_id=scn).first() or SpiritScenarioHandicap()) spirit_handicap.spirit = spirit spirit_handicap.scenario = scenario spirit_handicap.handicap = data[exp]["scenarios"][scn][ "spirit-handicaps"][s] spirit.scenario_handicaps.append(spirit_handicap) for a in data[exp]["scenarios"][scn].get("adversary-handicaps"): adversary = Adversary.query.get(a) adversary_handicap = ( ScenarioAdversaryHandicap.query.filter_by( adversary_id=a).filter_by(scenario_id=scn).first() or ScenarioAdversaryHandicap()) adversary_handicap.scenario = scenario adversary_handicap.adversary = adversary adversary_handicap.handicap = data[exp]["scenarios"][scn][ "adversary-handicaps"][a] scenario.adversary_handicaps.append(adversary_handicap) db.session.add(scenario)
def scenario_add(name, desc, creation_date, update_date, last_run): now = datetime.datetime.now() creation_date = now scenario = Scenario(name=name, description=desc, creation_date=creation_date) db.session.add(scenario) db.session.commit()
def test_DB(): player = Player() player.login = '******' scenario = Scenario() scenario.name = 'scenario 1' scenario.leadtime = 10 scenario.duration = 20 gameboard = GameBoard() gameboard.period = 1 # T = TableDict(10) # T.set_cell('order', 5, 1000) # T.set_cell('forecast', 8, 10) gameboard.data = TableDict(10) gameboard.data.set_cell('order', 5, 1000) gameboard.data.set_cell('forecast', 8, 10) scenario_counter = ScenarioCounter() player.gameboards.append(gameboard) player.played_scenario.append(scenario) player.scenario_counters.append(scenario_counter) scenario.gameboards.append(gameboard) scenario.counters.append(scenario_counter) db.session.add(player) db.session.add(scenario) db.session.add(gameboard) db.session.add(scenario_counter) db.session.commit() pl = db.session.query(Player).first() assert_equal('Pippo', pl.login) assert_equal('scenario 1', pl.played_scenario[0].name) d = pl.gameboards.filter(GameBoard.scenario_id==scenario.id).first() assert_in('<table', d.data.get_HTML()) assert_equal(d.data.get_cell('order', 5), 1000) assert_equal(d.data.get_cell('order', 8), 0) assert_equal(d.data.get_cell('forecast', 8), 10) assert_equal(d.data.get_cell('forecast', 1), 0) assert_equal(d.data.get_cell('forecast', 15), None)
def scenario_submit(): if request.method == 'POST': user_id = current_user.get_id() new_id =str(uuid.uuid4()) new_scenario = Scenario(id=new_id) db.session.add(new_scenario) db.session.commit() return render_template('new-scenario.html', scenario_id=new_scenario.id)
def basic_calc(): scenario = Scenario("basic", # title float(request.form['cash_on_cash']), float(request.form['target_ltv']), 0, # mezz_debt 0, # transfer_cost 50, # transfer_buyer_share 0, # recordation_cost 50, # recordation_buyer_share 0, # finance float(request.form['interest']), float(request.form['amort']), 8, # mezz_rate False, # mezz_interest_only False, # mezz_secured 30, # mezz_amort 0, # income_appr 0, # apprec_depr 5) # holding_period form = ScenarioForm(obj=scenario) form.title.data = "basic" # For some reason, not picking this up from scenario if form.validate(): c = CalcCapRate(scenario.__dict__) result = c.iterate_computation() # Convert to percentages for output result.update((i, j*100) for i, j in result.items()) cap_rate = result['cap_rate'] scenario.cap_rate = cap_rate return render_template('basic.html', form=form, scenario=scenario, result=result) else: print "Not Validated." print form.errors return redirect(url_for('basic'))
def test_serialization(): content = \ """ [products] P001 Banana 1kg P002 Orange 2kg P004 Lemon 4kg [services] Shipping [dates] """ scenario = Scenario(id="ID001", title="Simple Scenario", description="Simple Description", content=content) dict_data = scenario.to_dict() assert dict_data["id"] == "ID001" assert dict_data["title"] == "Simple Scenario" assert dict_data["description"] == "Simple Description"
def test_serialization(): content = \ """ [products] P001 Banana 1kg P002 Lemon 2kg P003 Orange 5kg [services] S001 Shipping [dates] order = 2017-01-01T00:00:00Z """ scenario = Scenario(id="ID001", title="Simple Scenario", description="Simple Description", content=content) dict_data = scenario.to_dict() assert dict_data["id"] == "ID001" assert dict_data["title"] == "Simple Scenario" assert dict_data["description"] == "Simple Description"
def test_instantiation(): content = \ """ [products] P001 Banana 1kg P002 Orange 2kg P004 Lemon 4kg [services] Shipping [dates] """ scenario = Scenario(id="ID001", title="Simple Scenario", description="Simple Description", content=content) assert scenario.id == "ID001" assert scenario.title == "Simple Scenario" assert scenario.description == "Simple Description"
def test_instantiation(): content = \ """ [products] P001 Banana 1kg P002 Lemon 2kg P003 Orange 5kg [services] S001 Shipping [dates] order = 2017-01-01T00:00:00Z """ scenario = Scenario(id="ID001", title="Simple Scenario", description="Simple Description", content=content) assert scenario.id == "ID001" assert scenario.title == "Simple Scenario" assert scenario.description == "Simple Description" assert scenario.content == content
def tearDown(self): try: Scenario.drop_collection() except: pass
def delete(self, scenario_id): result = Scenario.delete(scenario_id) return Response(result, 200, 'Successfuly deleted').to_dict()