Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

test #1

Open
wants to merge 17 commits into
base: master
Choose a base branch
from
13 changes: 13 additions & 0 deletions apps/hello/admin.py
Original file line number Diff line number Diff line change
@@ -1,3 +1,16 @@
from django.contrib import admin

from apps.hello.models import Info

# Register your models here.

class InfoAdm(admin.StackedInline):
model = Info
extra = 2

class AdminInfo(admin.ModelAdmin):
pass

admin.site.register(Info, AdminInfo)


1 change: 1 addition & 0 deletions apps/hello/fixtures/initial_data.json
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
[{"pk": 1, "model": "hello.info", "fields": {"info_skype": "LarryWall", "info_email": "[email protected]", "info_firstname": "Larry", "info_other": "Larry Wall (/w\u0254\u02d0l/; born September 27, 1954) is a computer programmer and author, most widely known as the creator of the Perl programming language.", "info_jabber": "Laryy@jabber", "info_birth": "1974-10-27", "info_bio": "Larry grew up in south Los Angeles and then Bremerton, Washington, before starting higher education at Seattle Pacific University in 1976, majoring in chemistry and music and later Pre-med with a hiatus of several years working in the university's computing center before being graduated with a self-styled bachelor's degree in Natural and Artificial Languages.[1]\r\n\r\nWhile in graduate school at University of California, Berkeley, Wall and his wife were studying linguistics with the intention afterwards of finding an unwritten language, perhaps in Africa, and creating a writing system for it. They would then use this new writing system to translate various texts into the language, among them the Bible. Due to health reasons these plans were cancelled, and they remained in the United States, where Larry instead joined the NASA Jet Propulsion Laboratory after he finished graduate school.", "info_lastname": "Wall"}}]
18 changes: 18 additions & 0 deletions apps/hello/models.py
Original file line number Diff line number Diff line change
@@ -1,3 +1,21 @@
from django.db import models

# Create your models here.
class Info(models.Model):
class Meta:
db_table = "info"

info_firstname = models.CharField(max_length=20, verbose_name='First Name')
info_lastname = models.CharField(max_length=20,verbose_name='Last Name')
info_bio = models.TextField(verbose_name='Bio')
info_email = models.EmailField(verbose_name='e-mail')
info_birth = models.DateField(blank = True, null = True)
info_jabber = models.CharField(max_length=30,verbose_name='Jabber')
info_other = models.TextField(verbose_name='Other Info')
info_skype = models.CharField(max_length=15,verbose_name='Skype')




def dumps(value):
return json.dumps(value,default=lambda o:None)
56 changes: 52 additions & 4 deletions apps/hello/tests.py
Original file line number Diff line number Diff line change
@@ -1,6 +1,54 @@
from django.test import TestCase
from apps.hello.models import Info
from apps.selenium import webdriver
from apps.hello.views import show_info
from django.http import HttpRequest
import unittest

# Create your tests here.
class SomeTests(TestCase):
def test_math(self):
assert(2+2==5)
class DataOutTest(unittest.TestCase):

def setUp(self):
self.browser = webdriver.Firefox()

def tearDown(self):
self.browser.quit()

def testTitle(self):
self.browser.get('http://localhost:8000/task/info/')
self.assertIn('InfoPage', self.browser.title)

class ViewTest(TestCase):

def test_root_url_resolves_to_home_page_view(self):
found = resolve('/')
self.assertEqual(found.func, show_info)


def test_home_page_returns_correct_html(self):
request = HttpRequest() #1
response = show_info(request) #2
self.assertTrue(response.content.startswith(b'<html>')) #3
self.assertIn(b'<title>InfoPage</title>', response.content) #4
self.assertTrue(response.content.endswith(b'</html>')) #5



class DataTest(TestCase):
def setUp(self):

Info.objects.create(info_firstname ="Buddy",
info_lastname ="Budd",
info_bio = "Hi there",
info_email ="[email protected]",
info_birth = "1967-05-06",
info_jabber = "dont have",
info_other = "nothing",
info_skype= "nothing")
def test_1(self):
''' will error on assertion'''
Buddy = Info.objects.get(info_firstname="Buddy")
self.assertEqual(Buddy.info_firstname, "Budd")


if __name__ == '__main__': #7
unittest.main(warnings='ignore')
19 changes: 19 additions & 0 deletions apps/hello/urls.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,19 @@
from django.conf.urls import patterns, include, url
from apps.hello.views import show_info_all, get_messages,show_info

urlpatterns = patterns('',
# Examples:
# url(r'^$', 'firstapp.views.home', name='home'),
# url(r'^blog/', include('blog.urls')),



url(r'^messages/', get_messages),
url(r'^info_all/', show_info_all),
url(r'^info/(?P<id>\d+)/$', show_info),





)
18 changes: 18 additions & 0 deletions apps/hello/views.py
Original file line number Diff line number Diff line change
@@ -1,3 +1,21 @@
from django.shortcuts import render
from apps.hello.models import Info
from django.shortcuts import render_to_response

from django.contrib import messages


# Create your views here.
def show_info_all(request, id=1):
allinfo = Info.objects.all()
db = Info._meta.fields
print db
return render_to_response('info.html',{'allinfo': allinfo})

def show_info(request, id = "1"):
return render_to_response('info.html',{'allinfo': Info.objects.filter(pk = id)})

def get_messages(request):
infos = Info.objects.all()
render_to_response('messages.html',{'message': infos} )

18 changes: 18 additions & 0 deletions apps/selenium/__init__.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,18 @@
# Copyright 2008-2013 Software Freedom Conservancy
#
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
# You may obtain a copy of the License at
#
# http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.

from selenium import selenium


__version__ = "2.42.1"
16 changes: 16 additions & 0 deletions apps/selenium/common/__init__.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,16 @@
# Copyright 2008-2010 WebDriver committers
# Copyright 2008-2010 Google Inc.
#
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
# You may obtain a copy of the License at
#
# http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.

from . import exceptions
214 changes: 214 additions & 0 deletions apps/selenium/common/exceptions.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,214 @@
# Copyright 2008-2009 WebDriver committers
# Copyright 2008-2009 Google Inc.
#
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
# You may obtain a copy of the License at
#
# http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.

"""
Exceptions that may happen in all the webdriver code.
"""

class WebDriverException(Exception):
"""
Base webdriver exception.
"""

def __init__(self, msg=None, screen=None, stacktrace=None):
self.msg = msg
self.screen = screen
self.stacktrace = stacktrace

def __str__(self):
exception_msg = "Message: %s " % repr(self.msg)
if self.screen is not None:
exception_msg = "%s; Screenshot: available via screen " \
% exception_msg
if self.stacktrace is not None:
exception_msg = "%s; Stacktrace: %s " \
% (exception_msg, str("\n" + "\n".join(self.stacktrace)))
return exception_msg

class ErrorInResponseException(WebDriverException):
"""
Thrown when an error has occurred on the server side.

This may happen when communicating with the firefox extension
or the remote driver server.
"""
def __init__(self, response, msg):
WebDriverException.__init__(self, msg)
self.response = response

class InvalidSwitchToTargetException(WebDriverException):
"""
Thrown when frame or window target to be switched doesn't exist.
"""
pass

class NoSuchFrameException(InvalidSwitchToTargetException):
"""
Thrown when frame target to be switched doesn't exist.
"""
pass

class NoSuchWindowException(InvalidSwitchToTargetException):
"""
Thrown when window target to be switched doesn't exist.

To find the current set of active window handles, you can get a list
of the active window handles in the following way::

print driver.window_handles

"""
pass

class NoSuchElementException(WebDriverException):
"""
Thrown when element could not be found.

If you encounter this exception, you may want to check the following:
* Check your selector used in your find_by...
* Element may not yet be on the screen at the time of the find operation,
(webpage is still loading) see selenium.webdriver.support.wait.WebDriverWait()
for how to write a wait wrapper to wait for an element to appear.
"""
pass

class NoSuchAttributeException(WebDriverException):
"""
Thrown when the attribute of element could not be found.

You may want to check if the attribute exists in the particular browser you are
testing against. Some browsers may have different property names for the same
property. (IE8's .innerText vs. Firefox .textContent)
"""
pass

class StaleElementReferenceException(WebDriverException):
"""
Thrown when a reference to an element is now "stale".

Stale means the element no longer appears on the DOM of the page.


Possible causes of StaleElementReferenceException include, but not limited to:
* You are no longer on the same page, or the page may have refreshed since the element
was located.
* The element may have been removed and re-added to the screen, since it was located.
Such as an element being relocated.
This can happen typically with a javascript framework when values are updated and the
node is rebuilt.
* Element may have been inside an iframe or another context which was refreshed.
"""
pass

class InvalidElementStateException(WebDriverException):
"""
"""
pass

class UnexpectedAlertPresentException(WebDriverException):
"""
Thrown when an unexpected alert is appeared.

Usually raised when when an expected modal is blocking webdriver form executing any
more commands.
"""
pass

class NoAlertPresentException(WebDriverException):
"""
Thrown when switching to no presented alert.

This can be caused by calling an operation on the Alert() class when an alert is
not yet on the screen.
"""
pass

class ElementNotVisibleException(InvalidElementStateException):
"""
Thrown when an element is present on the DOM, but
it is not visible, and so is not able to be interacted with.

Most commonly encountered when trying to click or read text
of an element that is hidden from view.
"""
pass

class ElementNotSelectableException(InvalidElementStateException):
"""
Thrown when trying to select an unselectable element.

For example, selecting a 'script' element.
"""
pass

class InvalidCookieDomainException(WebDriverException):
"""
Thrown when attempting to add a cookie under a different domain
than the current URL.
"""
pass

class UnableToSetCookieException(WebDriverException):
"""
Thrown when a driver fails to set a cookie.
"""
pass

class RemoteDriverServerException(WebDriverException):
"""
"""
pass

class TimeoutException(WebDriverException):
"""
Thrown when a command does not complete in enough time.
"""
pass

class MoveTargetOutOfBoundsException(WebDriverException):
"""
Thrown when the target provided to the `ActionsChains` move()
method is invalid, i.e. out of document.
"""
pass

class UnexpectedTagNameException(WebDriverException):
"""
Thrown when a support class did not get an expected web element.
"""
pass

class InvalidSelectorException(NoSuchElementException):
"""
Thrown when the selector which is used to find an element does not return
a WebElement. Currently this only happens when the selector is an xpath
expression and it is either syntactically invalid (i.e. it is not a
xpath expression) or the expression does not select WebElements
(e.g. "count(//input)").
"""
pass

class ImeNotAvailableException(WebDriverException):
"""
Thrown when IME support is not available. This exception is thrown for every IME-related
method call if IME support is not available on the machine.
"""
pass

class ImeActivationFailedException(WebDriverException):
"""
Thrown when activating an IME engine has failed.
"""
pass
Loading