Advertisement
AlbertMourato

Untitled

Jun 7th, 2017
70
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Python 6.29 KB | None | 0 0
  1. # coding=utf-8
  2. from behave import *
  3. from manager.models import *
  4. from sets import Set
  5. # from django.urls import reverse
  6. from django.core.urlresolvers import reverse
  7. from django.test import Client, TestCase
  8. import string
  9. import requests
  10. from manager import views
  11. from django.test.client import RequestFactory
  12. from django.http import HttpResponse, HttpResponseRedirect, HttpRequest
  13. from splinter import *
  14. from selenium import webdriver
  15. from selenium.webdriver.common.keys import Keys
  16. from selenium.webdriver.support.ui import *
  17. from selenium.webdriver.common.by import By
  18. from selenium.common.exceptions import TimeoutException
  19. from selenium.webdriver.support import expected_conditions as EC
  20. import time
  21.  
  22. # Testes GUI
  23. before = []
  24. after = []
  25. #driver = webdriver.Chrome()
  26.  
  27.  
  28. def getPort(url): #Retorna a porta da URL
  29.     return url.split(':')[2].split('/')[0]
  30.  
  31. #Cenario GUI 1
  32.  
  33. '''
  34. @given(u'eu estou logado no sistema')
  35. def logar(context):
  36.    driver.get("http://localhost:8000/")
  37.    user = driver.find_element_by_id("usernameInput")
  38.    user.send_keys("admin")
  39.    password = driver.find_element_by_id("pwdInput")
  40.    password.send_keys("adminadmin")
  41.    button = driver.find_element_by_id("buttonLogin")
  42.    button.click()
  43.    assert driver.current_url == "http://localhost:8000/home/"
  44. '''
  45.  
  46. @given(u'o item "{item}" esta cadastrado no sistema')
  47. def cadastrar_item_no_sistema(context, item):
  48.     views.create_new_item(None, item_name=item, qty=10, min_qty=0)
  49.     assert Item.objects.get(item_name=item) is not None
  50.  
  51.  
  52. @given(u'a secao "{secao}" esta cadastrada para a loja "{loja}"')
  53. def cadastrar_secao_loja(context, secao, loja):
  54.     views.create_new_store(None, loja)
  55.     lojaObject = Store.objects.get(store_name=loja)
  56.     assert lojaObject is not None
  57.     views.create_new_category(None, secao, lojaObject)
  58.     categoriaObject = Category.objects.get(category_name=secao, category_store=lojaObject)
  59.     assert categoriaObject is not None
  60.  
  61.  
  62. @given(u'eu estou na pagina de cadastramento de precos')
  63. def pagina_cadastrar_preco(context):
  64.     #driver.get("http://localhost:8000/home/")
  65.     context.browser.visit('http://localhost:' + context.port + reverse('home'))
  66.     #assert driver.current_url == "http://localhost:8000/home/"
  67.     assert context.browser.url == ('http://localhost:' + context.port + reverse('home'))
  68.     #link = driver.find_element_by_id("criarPreco")
  69.     link = context.browser.find_by_id('criarPreco')
  70.     link.click()
  71.     #assert driver.current_url == "http://localhost:8000/newPrice/"
  72.     assert context.browser.url == ('http://localhost:' + context.port + reverse('new_price'))
  73.  
  74.  
  75.  
  76. @given(u'eu seleciono o item "{item}" na lista de itens cadastrados')
  77. def item_esta_cadastrado(context, item):
  78.     #driver.find_element_by_class_name("select-dropdown").click()
  79.     context.browser.find_by_css('select-dropdown').first().click()
  80.     #spans = driver.find_elements_by_tag_name("span")
  81.     spans = context.browser.find_by_tag('span')
  82.     for s in spans:
  83.         if (s.text == item):
  84.             s.click()
  85.  
  86.  
  87. @given(u'eu seleciono a secao "{secao}" da loja "{loja}" na lista de secoes')
  88. def secao_esta_cadastrada(context, secao, loja):
  89.     views.create_new_store(None, loja)
  90.     store = Store.objects.get(store_name=loja)
  91.     views.create_new_category(None, secao, store)
  92.     category = Category.objects.get(category_name=secao, category_store=store)
  93.     #driver.find_element_by_class_name("select-dropdown2").click()
  94.     context.browser.find_by_css('select-dropdown2').first().click()
  95.     time.sleep(2)
  96.     #spans = driver.find_elements_by_tag_name("span")
  97.     spans = context.browser.find_by_tag('span')
  98.     for s in spans:
  99.         if (s.text == category.category_store.store_name + " - " + category.category_name):
  100.             s.click()
  101.  
  102.  
  103. @given(u'eu preencho o campo preco com valor "{valor}"')
  104. def campo_preenchido(context, valor):
  105.     #priceField = driver.find_element_by_id("priceInput")
  106.     priceField = context.browser.find_by_id('priceInput')
  107.     priceField.send_keys(valor)
  108.     before = Price.objects.all()
  109.  
  110.  
  111. @given(u'o item "{item}" na loja "{loja}" ainda nao possui um preco')
  112. def preco_nao_cadastrado(context, item, loja):
  113.     itemObject = Item.objects.get(item_name=item)
  114.     lojaObject = Store.objects.get(store_name=loja)
  115.     assert Price.objects.filter(price_product=itemObject, price_category__category_store=lojaObject).count() == 0
  116.  
  117.  
  118. @when(u'eu tento cancelar o cadastramento do item "{item}" com o valor "{preco}" na loja "{loja}"')
  119. def cancelar_cadastramento_preco(context, item, preco, loja):
  120.     c = Price.objects.all().count()
  121.     #driver.find_element_by_id("cancelButton").click()
  122.     context.browser.find_by_id('cancelButton').click()
  123.  
  124.  
  125. @then(u'eu estou na pagina de precos cadastrados')
  126. def estou_pagina_precos_cadastrados(context):
  127.     #assert driver.current_url == "http://localhost:8000/priceList/"
  128.     assert context.browser.url == ('http://localhost:' + context.port + reverse('price_list'))
  129.  
  130.  
  131. @then(u'a lista de precos nao foi alterada')
  132. def lista_nao_alterada(context):
  133.     #lista = driver.find_element_by_id("listaElementos")
  134.     lista = context.browser.find_by_id('listaElementos')
  135.     after = Price.objects.all()
  136.     assert len(before) == len(after)
  137.  
  138. #Cenario GUI 2
  139.  
  140. @given(u'o campo de cadastramento de preco esta vazio')
  141. def verifica_campo_vazio(context):
  142.     #campo = driver.find_element_by_id("priceInput")
  143.     campo = context.browser.find_by_id('priceInput')
  144.     campo.send_keys(123)
  145.     campo.clear()
  146.     assert campo.text == ""
  147.  
  148. @when(u'eu tento cadastrar preco para o item "{item}" na loja "{loja}"')
  149. def tentar_cadastrar_preco(context, item, loja):
  150.     #driver.find_element_by_tag_name("button").click()
  151.     context.browser.find_by_tag('button').click()
  152.  
  153.  
  154. @then(u'eu permaneco na pagina de cadastramento de precos')
  155. def verifica_mesma_pagina(context):
  156.     #assert driver.current_url == "http://localhost:8000/newPrice/"
  157.     assert context.browser.url == ('http://localhost:' + context.port + reverse('price_list'))
  158.  
  159. @then(u'eu vejo uma mensagem informando que falta inserir um preco')
  160. def vejo_mensagem(context):
  161.     #driver.find_element_by_class_name("toast")
  162.     itens = WebDriverWait(context.browser, 10).until(EC.presence_of_all_elements_located(
  163.         (By.CLASS_NAME, 'toast')))
  164.     assert (len(itens) > 0)
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement