import argparse def get_args(): parser = argparse.ArgumentParser() parser.add_argument('-first_file', action='store', dest='full_path_of_first_file', required=True, help='The full path to first file to be compared') parser.add_argument('-second_file', action='store', dest='full_path_of_second_file', required=True, help='The full path to second file to be compared') args = parser.parse_args() if not os.path.isfile(args.full_path_of_first_file): parser.error("Path for first file does not exist: %s"%args.full_path_of_first_file) if not os.path.isfile(args.full_path_of_second_file): parser.error("Path for second file does not exist: %s"%args.full_path_of_second_file) print(args) return dict(path_of_first_file=args.full_path_of_first_file, path_of_second_file=args.full_path_of_second_file) def main(): exec_args = get_args() path_of_first_file = exec_args['path_of_first_file'] path_of_second_file = exec_args['path_of_second_file'] if __name__ == '__main__': main() ______________________________________________________________________________________ LIST COMPREHENSION a = [1, 4, 9, 16, 25, 36, 49, 64, 81, 100] b = [number for number in a if number % 2 == 0] -------------------------------------------------------------------------------------------- PENDER_DEPLOY_DIR=/opt/deploy/pender DATA_FOLDER=$PENDER_DEPLOY_DIR/data CONF_FOLDER=$PENDER_DEPLOY_DIR/conf TEST_FOLDER=$PENDER_DEPLOY_DIR/test SPARK_INPUT=$DATA_FOLDER/spark_input PENDER_INPUT=$DATA_FOLDER/pender_input WATCH_DIR=$DATA_FOLDER/file_for_classification ############################################################################### # Dev. Dockers 7 ############################################################################### BIN_DOCKER=weseeltd/pender_bin:rami2 WATCHER_DOCKER=weseeltd/watcher:production_v3 FILTER_DOCKER=weseeltd/clider:production DPADAPTER_DOCKER=weseeltd/jbuntu:production SPLITTER_DOCKER=weseeltd/jbuntu:production MONITOR_DOCKER=weseeltd/jbuntu:production CACHE_SYNCHRONIZER_DOCKER=weseeltd/jbuntu:production ############################################################################### # Docker start scripts ############################################################################### WATCHER_START_SCRIPT=/home/watcher/sbin/start.sh FILTER_START_SCRIPT=/home/filter/sbin/start.sh DPADAPTER_START_SCRIPT=/home/dpadapter/sbin/start.sh SPLITTER_START_SCRIPT=/home/splitter/sbin/start.sh MONITOR_START_SCRIPT=/home/monitor/sbin/start.sh CACHE_SYNCHRONIZER_START_SCRIPT=/home/cache_synchronizer/sbin/start.sh ############################################################################### check() { CONTAINER=$1 RUNNING=$(docker inspect --format="{{ .State.Running }}" $CONTAINER 2> /dev/null) if [ "$RUNNING" != "true" ]; then echo "ERROR - $CONTAINER is not running." exit 1 fi } case "$1" in start) `$0 status &> /dev/null` if [ $? -eq 0 ]; then echo "pender service is already running" exit 0 fi $0 stop #COPY ENV CONFIGURATION mkdir -p conf cp -rf conf_pender_latest/* ./conf/ export PENDER_LISTENING_PORT=83 export NGINX_PORT=80 export HOST_MACHINE_IP=localhost export QUEUE_KEY=queue:dsp:loading:cs export LOG_DIR=$PENDER_DEPLOY_DIR/log docker create \ --name="pender_bin" \ -v /home/filter \ -v /home/watcher \ -v /home/dpadapter \ -v /home/splitter \ -v /home/monitor \ -v /home/test \ -v /home/cache_synchronizer \ $BIN_DOCKER \ /bin/true docker run --name="watcher" \ --net=host \ -e "local_ip=$HOST_MACHINE_IP" \ -e "local_port=$NGINX_PORT" \ -e "queue_ip=0.0.0.0" \ -e "queue_port=6666" \ -e "queue_key=$QUEUE_KEY" \ --volumes-from pender_bin \ -v $LOG_DIR:/home/watcher/log \ -v $WATCH_DIR:/home/watcher/input \ -v $WATCH_DIR:/home/watcher/output \ -v $CONF_FOLDER/watcher/conf:/home/watcher/conf \ -d $WATCHER_DOCKER \ $WATCHER_START_SCRIPT docker run -d \ --name "filter" \ --volumes-from pender_bin \ -v $WATCH_DIR:/home/filter/output \ -v $SPARK_INPUT:/home/filter/input \ -v $CONF_FOLDER/spark/filter/conf:/home/filter/conf \ -v $CONF_FOLDER/spark/engine/conf:/home/spark/conf \ -v $LOG_DIR:/home/filter/logs \ -v $TEST_FOLDER:/home/test_folder \ -p 4040:4040 \ $FILTER_DOCKER \ $FILTER_START_SCRIPT docker run -d --net=host \ --name "dpadapter" \ --volumes-from pender_bin \ -e "PENDER_LISTENING_PORT=$PENDER_LISTENING_PORT" \ -v $CONF_DER/dpadapter/conf:/home/dpadapter/conft \ -v $PENDER_INPUT:/home/dpadapter/output \ -v $LOG_DIR:/home/dpadapter/log \ $DPADAPTER_DOCKER \ sh -c $DPADAPTER_START_SCRIPT docker run --name "splitter" \ --net=host \ --volumes-from pender_bin \ -e local_ip=$HOST_MACHINE_IP \ -e local_port=$NGINX_PORT \ -v $PENDER_INPUT:/home/splitter/input \ -v $SPARK_INPUT:/home/splitter/nonclassified \ -v $WATCH_DIR:/home/splitter/classified \ -v $CONF_FOLDER/splitter/conf:/home/splitter/conf \ -v $LOG_DIR:/home/splitter/log \ -d $SPLITTER_DOCKER \ $SPLITTER_START_SCRIPT docker run --name "monitor" \ --net=host \ --volumes-from pender_bin \ -v $CONF_FOLDER/monitor/conf:/home/monitor/conf \ -v $LOG_DIR:/home/monitor/log \ -d $MONITOR_DOCKER \ $MONITOR_START_SCRIPT docker run --name "cache_synchronizer" \ --net=host \ -e local_ip=$HOST_MACHINE_IP \ --volumes-from pender_bin \ -v $CONF_FOLDER/cache_synchronizer/conf:/home/cache_synchronizer/conf \ -v $LOG_DIR:/home/cache_synchronizer/log \ -d $CACHE_SYNCHRONIZER_DOCKER \ $CACHE_SYNCHRONIZER_START_SCRIPT $0 status ;; stop) for service in watcher filter dpadapter splitter monitor cache_synchronizer; do docker stop $service 2> /dev/null docker wait $service 2> /dev/null docker rm -v $service 2> /dev/null done docker rm -v pender_bin 2> /dev/null for i in `docker ps -a|grep pender_bin|cut -d " " -f1`; do docker rm $i 2> /dev/null; done exit 0 ;; status) check watcher check filter check dpadapter check splitter check monitor check cache_synchronizer echo All docker containers are running ;; restart) $0 stop $0 start ;; *) echo $"Usage: $0 {start|stop|status|restart)" exit 2 esac set +x ----------------------------------------------------------------------------------------- WEB DRIVER ##import webdriver from selenium from selenium import webdriver ##import Select from selenium to use for selecting items from dropdown list from selenium.webdriver.support.ui import Select ##import python unittest framework import unittest ##import SiteElements class from SiteModel import SiteElements ##create an instance of SiteElements Class siteElements = SiteElements(webdriver) ##Login Function def login(): ##navigate to the mahara test demo site siteElements.driver.get("http://demo.mahara.org") ##print site title print siteElements.driver.title ##input username "student2" in the username field siteElements.get_user_name_element().send_keys("student2") ##input password "Testing1" in the password field siteElements.get_user_password_element().send_keys("Testing1") ##click on the submit button siteElements.get_login_button_element().click() ##check if logout link displayed islogoutvisible = siteElements.get_logout_link().is_displayed() ##print check status print "logout link display", islogoutvisible ## return login status return islogoutvisible ##Logout Function def logout(): ##click logout link siteElements.get_logout_link().click() ##check if username text field is displayed after logout isLoginVisible = siteElements.get_user_name_element().is_displayed() ##print display status print "login user name field display", isLoginVisible ##return logout status return isLoginVisible ##check hide real user name function def hide_real_name_user_setting(): ##click on the settings link siteElements.get_setting_link_element().click() ##check on the hide real user name checkbox siteElements.get_hide_real_name_checkbox_element().click() ##click on the preference save button siteElements.get_save_setting_button_element().click() ##wait about 10 seconds siteElements.driver.implicitly_wait(10) ##get save confirmation message confirmationtext=siteElements.get_preference_saved_message().text ##return confirmation status message return confirmationtext ##sort group name by "Latest Joined" function def sort_group_name(): ##click on the settings link siteElements.get_setting_link_element().click() ##select "Latest Joined" label from the group sort dropdown list Select(siteElements.get_group_name_sort_by_dropdown_element()).select_by_visible_text("Latest joined") ##click on the preference save button siteElements.get_save_setting_button_element().click() ##wait about 10 seconds siteElements.driver.implicitly_wait(10) ##get save confirmation message confirmationmessage=siteElements.get_preference_saved_message().text ##return confirmation status message return confirmationmessage ##Test Runner Class to run the test class TestRunner(unittest.TestCase): ##class level test setup for maximize window and login @classmethod def setUpClass(cls): siteElements.driver.maximize_window() login() ##Test Hide Read User Name Settings Change def test_hide_real_name_user_settings(self): self.assertEqual(hide_real_name_user_setting(),"Preferences saved") ##Test Sort Group Name Settings Change def test_sort_group_name(self): self.assertEqual(sort_group_name(),"Preferences saved") ##class levvel test teardown logout and close browser @classmethod def tearDownClass(cls): logout() siteElements.driver.close() ##run the main test if __name__ == "__main__": unittest.main() ------------------------------------------------------------------------------------------ SELECT Customers.CustomerName, Orders.OrderID FROM Customers INNER JOIN Orders ON Customers.CustomerID=Orders.CustomerID ORDER BY Customers.CustomerName; select distinct Movie.year from Movie inner join Rating on Rating.mID=Movie.mID where Rating.stars>3 order by Movie.year asc SELECT column_name(s) FROM table1 LEFT JOIN table2 ON table1.column_name=table2.column_name;
Run
Reset
Share
Import
Link
Embed
Language▼
English
中文
Python Fiddle
Python Cloud IDE
Follow @python_fiddle
Browser Version Not Supported
Due to Python Fiddle's reliance on advanced JavaScript techniques, older browsers might have problems running it correctly. Please download the latest version of your favourite browser.
Chrome 10+
Firefox 4+
Safari 5+
IE 10+
Let me try anyway!
url:
Go
Python Snippet
Stackoverflow Question