Skip to content
Projects
Groups
Snippets
Help
This project
Loading...
Sign in / Register
Toggle navigation
E
edx-platform
Overview
Overview
Details
Activity
Cycle Analytics
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Issues
0
Issues
0
List
Board
Labels
Milestones
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Charts
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Charts
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
edx
edx-platform
Commits
03072bde
Commit
03072bde
authored
Aug 20, 2012
by
Mark L. Chang
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
first cut integrating lettuce + selenium into django
parent
594cd0cc
Hide whitespace changes
Inline
Side-by-side
Showing
4 changed files
with
196 additions
and
0 deletions
+196
-0
lms/djangoapps/courseware/features/courses.py
+45
-0
lms/djangoapps/courseware/features/homepage.feature
+9
-0
lms/djangoapps/terrain.py
+12
-0
lms/envs/test_lettuce.py
+130
-0
No files found.
lms/djangoapps/courseware/features/courses.py
0 → 100644
View file @
03072bde
from
lettuce
import
*
#before, world
from
selenium
import
*
import
lettuce_webdriver.webdriver
import
logging
from
selenium.webdriver
import
ActionChains
from
selenium.webdriver.support.ui
import
WebDriverWait
from
collections
import
defaultdict
from
fs.errors
import
ResourceNotFoundError
from
functools
import
wraps
import
logging
from
path
import
path
from
django.conf
import
settings
from
django.http
import
Http404
from
xmodule.course_module
import
CourseDescriptor
from
xmodule.modulestore
import
Location
from
xmodule.modulestore.django
import
modulestore
from
xmodule.modulestore.exceptions
import
ItemNotFoundError
from
static_replace
import
replace_urls
,
try_staticfiles_lookup
from
courseware.access
import
has_access
## set up logger
# logging.basicConfig(filename='lettuce.log', level=logging.DEBUG)
## support functions
def
get_courses
():
'''
Returns dict of lists of courses available, keyed by course.org (ie university).
Courses are sorted by course.number.
'''
# TODO: Clean up how 'error' is done.
# filter out any courses that errored.
courses
=
[
c
for
c
in
modulestore
()
.
get_courses
()
if
isinstance
(
c
,
CourseDescriptor
)]
courses
=
sorted
(
courses
,
key
=
lambda
course
:
course
.
number
)
logging
.
debug
(
courses
)
## course listing step
@step
(
u'I should see all courses'
)
def
i_should_see_all_courses
(
step
):
get_courses
()
\ No newline at end of file
lms/djangoapps/courseware/features/homepage.feature
0 → 100644
View file @
03072bde
Feature
:
There are courses
In order to view and sign up for courses
As anonymous web users
We want to be able to see all the courses available on the home page
Scenario
:
We can see all the courses
Given I visit "http
:
//localhost
:
8000/"
I
should see all courses
\ No newline at end of file
lms/djangoapps/terrain.py
0 → 100644
View file @
03072bde
from
lettuce
import
before
,
after
,
world
from
selenium
import
webdriver
import
lettuce_webdriver.webdriver
@before.all
def
setup_browser
():
world
.
browser
=
webdriver
.
Firefox
()
@after.all
def
teardown_browser
(
total
):
world
.
browser
.
quit
()
\ No newline at end of file
lms/envs/test_lettuce.py
0 → 100644
View file @
03072bde
"""
This config file runs the simplest dev environment using sqlite, and db-based
sessions. Assumes structure:
/envroot/
/db # This is where it'll write the database file
/mitx # The location of this repo
/log # Where we're going to write log files
"""
from
.common
import
*
from
.logsettings
import
get_logger_config
DEBUG
=
True
TEMPLATE_DEBUG
=
True
MITX_FEATURES
[
'DISABLE_START_DATES'
]
=
True
MITX_FEATURES
[
'ENABLE_SQL_TRACKING_LOGS'
]
=
True
WIKI_ENABLED
=
True
LOGGING
=
get_logger_config
(
ENV_ROOT
/
"log"
,
logging_env
=
"dev"
,
tracking_filename
=
"tracking.log"
,
debug
=
True
)
DATABASES
=
{
'default'
:
{
'ENGINE'
:
'django.db.backends.sqlite3'
,
'NAME'
:
ENV_ROOT
/
"db"
/
"mitx.db"
,
}
}
CACHES
=
{
# This is the cache used for most things. Askbot will not work without a
# functioning cache -- it relies on caching to load its settings in places.
# In staging/prod envs, the sessions also live here.
'default'
:
{
'BACKEND'
:
'django.core.cache.backends.locmem.LocMemCache'
,
'LOCATION'
:
'mitx_loc_mem_cache'
,
'KEY_FUNCTION'
:
'util.memcache.safe_key'
,
},
# The general cache is what you get if you use our util.cache. It's used for
# things like caching the course.xml file for different A/B test groups.
# We set it to be a DummyCache to force reloading of course.xml in dev.
# In staging environments, we would grab VERSION from data uploaded by the
# push process.
'general'
:
{
'BACKEND'
:
'django.core.cache.backends.dummy.DummyCache'
,
'KEY_PREFIX'
:
'general'
,
'VERSION'
:
4
,
'KEY_FUNCTION'
:
'util.memcache.safe_key'
,
}
}
XQUEUE_INTERFACE
=
{
"url"
:
"https://sandbox-xqueue.edx.org"
,
"django_auth"
:
{
"username"
:
"lms"
,
"password"
:
"***REMOVED***"
},
"basic_auth"
:
(
'anant'
,
'agarwal'
),
}
# Make the keyedcache startup warnings go away
CACHE_TIMEOUT
=
0
# Dummy secret key for dev
SECRET_KEY
=
'85920908f28904ed733fe576320db18cabd7b6cd'
################################ LMS Migration #################################
MITX_FEATURES
[
'ENABLE_LMS_MIGRATION'
]
=
True
MITX_FEATURES
[
'ACCESS_REQUIRE_STAFF_FOR_COURSE'
]
=
False
# require that user be in the staff_* group to be able to enroll
MITX_FEATURES
[
'USE_XQA_SERVER'
]
=
'http://xqa:server@content-qa.mitx.mit.edu/xqa'
LMS_MIGRATION_ALLOWED_IPS
=
[
'127.0.0.1'
]
################################ OpenID Auth #################################
MITX_FEATURES
[
'AUTH_USE_OPENID'
]
=
True
MITX_FEATURES
[
'BYPASS_ACTIVATION_EMAIL_FOR_EXTAUTH'
]
=
True
INSTALLED_APPS
+=
(
'external_auth'
,)
INSTALLED_APPS
+=
(
'django_openid_auth'
,)
OPENID_CREATE_USERS
=
False
OPENID_UPDATE_DETAILS_FROM_SREG
=
True
OPENID_SSO_SERVER_URL
=
'https://www.google.com/accounts/o8/id'
# TODO: accept more endpoints
OPENID_USE_AS_ADMIN_LOGIN
=
False
################################ MIT Certificates SSL Auth #################################
MITX_FEATURES
[
'AUTH_USE_MIT_CERTIFICATES'
]
=
True
################################ DEBUG TOOLBAR #################################
INSTALLED_APPS
+=
(
'debug_toolbar'
,)
INSTALLED_APPS
+=
(
'lettuce.django'
,)
MIDDLEWARE_CLASSES
+=
(
'debug_toolbar.middleware.DebugToolbarMiddleware'
,)
INTERNAL_IPS
=
(
'127.0.0.1'
,)
DEBUG_TOOLBAR_PANELS
=
(
'debug_toolbar.panels.version.VersionDebugPanel'
,
'debug_toolbar.panels.timer.TimerDebugPanel'
,
'debug_toolbar.panels.settings_vars.SettingsVarsDebugPanel'
,
'debug_toolbar.panels.headers.HeaderDebugPanel'
,
'debug_toolbar.panels.request_vars.RequestVarsDebugPanel'
,
'debug_toolbar.panels.sql.SQLDebugPanel'
,
'debug_toolbar.panels.signals.SignalDebugPanel'
,
'debug_toolbar.panels.logger.LoggingPanel'
,
# Enabling the profiler has a weird bug as of django-debug-toolbar==0.9.4 and
# Django=1.3.1/1.4 where requests to views get duplicated (your method gets
# hit twice). So you can uncomment when you need to diagnose performance
# problems, but you shouldn't leave it on.
# 'debug_toolbar.panels.profiling.ProfilingDebugPanel',
)
############################ FILE UPLOADS (ASKBOT) #############################
DEFAULT_FILE_STORAGE
=
'django.core.files.storage.FileSystemStorage'
MEDIA_ROOT
=
ENV_ROOT
/
"uploads"
MEDIA_URL
=
"/static/uploads/"
STATICFILES_DIRS
.
append
((
"uploads"
,
MEDIA_ROOT
))
FILE_UPLOAD_TEMP_DIR
=
ENV_ROOT
/
"uploads"
FILE_UPLOAD_HANDLERS
=
(
'django.core.files.uploadhandler.MemoryFileUploadHandler'
,
'django.core.files.uploadhandler.TemporaryFileUploadHandler'
,
)
########################### PIPELINE #################################
PIPELINE_SASS_ARGUMENTS
=
'-r {proj_dir}/static/sass/bourbon/lib/bourbon.rb'
.
format
(
proj_dir
=
PROJECT_ROOT
)
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment