Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
23 commits
Select commit Hold shift + click to select a range
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 2 additions & 0 deletions .gitignore
Original file line number Diff line number Diff line change
@@ -0,0 +1,2 @@
*.pyc
*~
41 changes: 41 additions & 0 deletions features/rosko.feature
Original file line number Diff line number Diff line change
@@ -0,0 +1,41 @@
Feature: Rosko


Scenario: ingreso a la pantalla inicial

Given rosko iniciado
Then muestra titulo del juego pasapalabras

Scenario: visualizar respuesta
Given rosko iniciado
When escribo prueba
And envio la respuesta
Then se visualiza la respuesta

Scenario: mostrar pregunta A
Given rosko iniciado
Then muestra pregunta A

Scenario: formular pregunta A
Given rosko iniciado
When pregunta A es tiene color marron y hojas verdes
Then muestra letra A con pregunta tiene color marron y hojas verdes

Scenario: mostrar OK para resultado correcto
Given rosko iniciado

When pregunta A es tiene color marron y hojas verdes
And escribo arbol
And envio la respuesta
Then se muestra un OK en pantalla

Scenario: mostrar NOK para resultado incorrecto
Given rosko iniciado
When escribo una respuesta incorrecta
And envio la respuesta
Then se muestra un NOK en pantalla

Scenario: mostrar PASS para resultado pass
Given rosko iniciado
When presiono boton pass
Then se muestra un PASS en pantalla
6 changes: 0 additions & 6 deletions features/rover.feature

This file was deleted.

48 changes: 48 additions & 0 deletions features/steps/rosko_step.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,48 @@
from rosko import *
from behave import *
from splinter import Browser
browser = Browser('flask',app=app)

@given(u'rosko iniciado')
def step_impl(context):
browser.visit('http://127.0.0.1:5000')

@then(u'muestra titulo del juego {mensaje}')
def step_impl(context, mensaje):
assert mensaje.upper() in browser.html


@when(u'escribo {respuesta}')
def step_impl(context,respuesta):
browser.fill('response_a', respuesta)

@when(u'envio la respuesta')
def step_impl(context):
browser.find_by_id('ok_button')[0].click()


@then(u'se visualiza la respuesta')
def step_impl(context):
print(browser.html)
assert 'prueba' in browser.html

@then(u'muestra pregunta {letra}')
def step_impl(context, letra):
assert letra.upper() + '-' in browser.html

@when(u'pregunta {letra} es {pregunta}')
def step_impl(context, letra, pregunta):
assert letra.upper() + '-' + ' ' + pregunta

@then(u'muestra letra {letra} con pregunta {pregunta}')
def step_impl(context, letra, pregunta):
assert letra.upper()+ '-' + ' ' + pregunta in browser.html


@then(u'se muestra un {resultado} en pantalla')
def step_impl(context,resultado):
assert resultado in browser.html

@when(u'presiono boton pass')
def step_impl(context):
browser.find_by_id('pass_button')[0].click()
13 changes: 0 additions & 13 deletions features/steps/rover_step.py

This file was deleted.

14 changes: 14 additions & 0 deletions model/rosko_model.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,14 @@
class RoskoModel:

def __init__(self):
self.respuesta_valida = "arbol"
self.respuesta = ""

def setRespuesta(self, respuesta):
self.respuesta = respuesta

def validar(self):
if (self.respuesta_valida == self.respuesta):
return 'OK'
else:
return 'NOK'
25 changes: 25 additions & 0 deletions rosko.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,25 @@
# define simple flask app
from flask import Flask,render_template,request
from model.rosko_model import RoskoModel
app = Flask(__name__)


@app.route('/')
def hello_world():
return render_template('index.html')

@app.route('/pregunta', methods=['POST'])
def pregunta():
valor = request.form['response_a']
rosko = RoskoModel()
rosko.setRespuesta(valor);
return render_template('index.html', answer=valor, result=rosko.validar())

@app.route('/pass', methods=['GET'])
def getPass():
return render_template('index.html', result='PASS')



if __name__ == "__main__":
app.run()
10 changes: 0 additions & 10 deletions rover.py

This file was deleted.

24 changes: 19 additions & 5 deletions templates/index.html
Original file line number Diff line number Diff line change
@@ -1,6 +1,20 @@
<html>
<title>Mars Rover</title>
<body>
Position: {{position[0]|string +","+ position[1]|string}}
</body>
</html>
<title>ROSKO</title>

<body>
<h1> PASAPALABRAS </h1>
<p>
A- tiene color marron y hojas verdes<br>
<form method="POST" action="pregunta">
<input type="text" name="response_a"><br>
<input type="submit" name="ok_button" id="ok_button" value="validar"> <br>
</form>
<form method="GET" action="pass">
<input type="submit" name="pass_button" id="pass_button" value="pasapalabra"> <br>
</form>
</p>
Respuesta: <div style="color:#80BFFF"> {{answer}} </div>
Resultado: {{result}}
</body>


20 changes: 0 additions & 20 deletions test/example_test.py

This file was deleted.

25 changes: 25 additions & 0 deletions test/rosko_test.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,25 @@
from unittest import TestCase
from model.rosko_model import RoskoModel

class TestStringMethods(TestCase):

def test_guardar_respuesta(self):
rosko = RoskoModel()
rosko.setRespuesta('ejemplo respuesta');
respuesta = rosko.respuesta
self.assertEqual('ejemplo respuesta', respuesta)

def test_validar_respuesta(self):
rosko = RoskoModel()
rosko.setRespuesta('arbol');
v = rosko.validar()
self.assertEqual('OK', v)

def test_validar_respuesta_incorrecta(self):
rosko = RoskoModel()
rosko.setRespuesta('incorrecto');
v = rosko.validar()
self.assertEqual('NOK', v)

if __name__ == '__main__':
unittest.main()