Tuesday, May 29, 2012

GSoc 2012: Extension and Integration with External APIs: Week2


Hi 

It has been a week now since the coding period started and I have not
done much work yet, I was spending time with Javascript and jQuery basics.

This week Me, Madhusudan and Mario scheduled  meeting to discuss over
the strategy to integrate present Orcun's code (extended by Madhusudan)
to integrate with melange. Since during the year lot of code has been
pushed to melange I will require to work on merging conflicts and then
look at what the outcomes are in terms of functionality before merging.

Madhusudan has already shared the patches and the  git branch
shipmenttracking for me to work on. This week I will apply patches 
to current melange codebase and will do the  necessary changes to 
make it compatible with Melange.

Monday, May 28, 2012

Initial Connection Model Implementation

Hey all, this week I've been discussing the requirements and details of the model that I'm going to be using to represent both invitations and requests between an organization and a user. We've decided on using a model called GSoCConnection containing reference properties to the organization and the user involved in the request or invitation. Within this model also resides "private" properties to represent the actions taken by either a user or an organization. For example, a user sending a request to become a mentor will cause the user state to become 'mentor_request_accepted' and the org's state to become 'mentor_request_pending', since we'll be waiting on a response. If the org accepts, their action will be changed to 'mentor_request_accepted' and the calling class will be able to call the is_mutual_acceptance() method in order to determine whether the user needs to be promoted.

Right now I've thought up as many states as I think are relevant and added them to my GSoCConnection class as constants with methods to allow for changing the state. Another approach I've been toying with is just writing out methods for each of these to encapsulate some of the logic for determining the states and chaining them with an internal set_state method. I'm going to discuss this idea with Daniel this week and possibly discuss alternatives.

The code for my first implementation of this model can be found here (not the most elegant way to share code, I know). See you next week!

Update: Changed the pastebin link to reflect change to method names per style guide and changed my strategy for supporting states

Melange Functional Testing- Base Module & Test data

Hello everyone, This week i mainly focused on creating a base module Melange_functional_actions.py for the framework. In the base module i defined a base class funcTests which consists of many other methods which will will be used in creating test scripts for different scenarios. e.g:
  1. get_parameters(name_of_workbook)
  2. write_text_field()
  3. wait()
  4. toggle_checkbox()
  5. set_dropdown_list()
  6. wait_and_check_if_displayed()
  7. wait_and_click()
  8. wait_and_enter_text()
  9. wait_and_clear_field()
  10. assert_error()
  11. assert_link()
  12. click_on()
  13. assert_text()
  14. take_screenshot()
  15. clear_field_and_enter_new_data()
  16. setUp()
  17. tearDown()
  18. login()

I am using these methods to re write the test script for Student Registration Test . Student Registration Test has three test cases.

TC01 checks the normal path of registration.
TC02 checks for error messages when empty form is submitted.
TC03 checks for messages when wrong inputs are supplied to registration form, It assert all the messages and provide correct form data for successful registration.

Test data for the test script is here.

Monday, May 21, 2012

GSoC 2012 : Extension and Integration with External APIs : Introduction

Hi,

I am Aditi Mittal,  a 2012 Google Summer of Code student working with Melange community. It has been four weeks since the GSoC result came out but I had been quite busy with exams so couldn’t remain active, thanks to Mario for keeping his cool ( ^__^ ).

I want to thank a zillion time to Madhusudan for his continuous guidance and help since the time I started with Melange and Orcun for walking me through his code which I will be extending during the summers. Every time I talk to Melange people I learn a new thing from them. This will be my first major contribution to open source community so I am very excited about it.

After getting free from exams I asked Mario for jQuery and Javascript books. I started with The Good Parts by Douglas Crockford and Javascript: The Definitive Guide by David Flanagan and for jQuery I am reading jQuery Cookbook by Cody Lindley.

During the summers I will enhance melange user interface by adding new features such as shipment tracking, proposal syncing and data export to other formats other than CSV export of melange lists. I will also be adding Picker API functionality. Carol must be liking it :-) .

I attended the G+ hangouts(Melange conference call) and it was a unique experience talking to all the Melange members. It was like all of us were sitting in one room and discussing the project.

Talking to very experienced and supporting mentors has already strengthened my morale.
I will talk to Orcun for better understanding of his code and Mario to give the project a real start.

I can’t keep myself less excited as this going to be one of the most productive summer of my  life!!




Sunday, May 20, 2012

Melange Functional Testing


Hi everyone, my name is Syed Armani. This summer i will be working with Melange community as a student  under Google Summer of Code.

I am  very happy that i am working with melange community this summer. Its a pleasure to work with people like Chong Liu, Sverre, Lennard, Madhu, Mario and many others. Madhu is a very nice person and Lennard is always there when you need help. Leo is a great guy and i am thankful to him that he chose me for this project. Till now i have not got enough chance to speak with other members of the community, i hope to meet them soon and  I really love the cool t-shirts that Sverre and Lennard wear in G+ Hangouts.

This summer i will be working on creating a  Data Driven Framework for Functional Testing of  Melange. A test suite consisting of all the possible test cases covering all the possible scenarios of using melange application. Test scripts for executing the test cases will be written in python and executed using Selenium Webdriver. The proposed test suite of functional tests will consist of Test cases and test data, User actions and assertions in Python, Data parametrization, Headless (xvfb) mode , Screenshots on errors.

I will write test scripts for various scenarios as "user stories".  A story depicting how a user interact with GSoC and GCI apps. We will use xlrd module to read the cells of excel sheet, these cells will contain the unique identity of the objects present in the application as well as there values, The values will be taken from the cells and they will be used to fill the forms. Assert statements will check the presence of various error messages, headings, title and text present on the pages.  Test output can be displayed to the console or saved as an HTML report. If any of the test fails a screen shot will be taken on failure to see where the test failed.

Functional test cases will be included for both GSoC & GCI applications:

GSoC:  Melange Home Page, Student Registration Page, Mentor Registration Page, Login Page, My Profile Page, My Dashboard Page, About Page, Events and Timeline Page, Connect With Us Page, Search Page, FAQ page.

GCI:  Home Page, My Dashboard, Register As Student, Events and Timeline,  The official Leader board, Tasks Page, Login, Invites to me

Monday, May 7, 2012

GSoC 2012 Introduction

Hi, my name is Andrew (Drew) Rodman and I'm going to be working as a student for Melange this summer as my Google Summer of Code Project.

I'm excited to work with my mentor Daniel Hans, Lennard, Sverre, Madhu, and all of the other contributors that I have not yet had the opportunity to meet. I'll be working on rebuilding the invite and request modules for both gsoc and gci more or less from scratch in order to take into account issues that have arisen so that they can be eliminated without requiring heavy patching. I'll also be doing a little bit of template design work in order to make it more apparent how to invite mentors and organization admins to a program. I have worked previously with Google App Engine and have refreshed and expanded my knowledge by re-reading the GAE Python 2.7 docs regarding the datastore. I am also reasonably familiar with the Django framework and am currently in the process of figuring out "the big picture," or improving my conceptual overview of how Melange works. I'm also working on determining the specific requirements of the invite and request modules that I'll be working on since Daniel asked me not to look at the current implementation.

I'm excited to start this project and even more so to be working with a community of incredibly proficient developers in order to improve my own skill-set and hopefully make some friends within the Open Source world...in addition to gaining a long-term project to which I can contribute after the program ends.  

Tuesday, August 23, 2011

GSoC 2011 Integration with External APIs: GSoC ends with great experiences

Hi,

We came into the end of Summer of Code 2011. It was one of the best collaborative development environments i've ever been before. I learned lots of stuff especially about Google Data APIs, OAuth, Javascript, Rest structure . I improved my code writing skills for more beautiful Python code. I worked with very nice and smart people. I tried to look problems like from their perspectives which  led me better reasoning against problems. As a result, it was a long but short summer that I spent my most of my time in front of my computer, but that was really fun. I own special thanks to my mentor Mario and co-mentor Madhusudan for spending quite amount of their time with my problems, reviews and newbie questions.

Last week was a little rush for me. I worked on Carol's issue about shipment trackings. Program administrator wants to share some spreadsheets that holds shipment tracking numbers, notes, address for students. A task for this spreadsheet is going to run and data will be synced to Melange datastore so student will be able to see the shipments sent for them in the dashboard page. We hope it will be used for the final shipments this year.

That's a video i captured for its initial state: