Skip to content
This repository has been archived by the owner on Jan 26, 2021. It is now read-only.

GSoC 2018 Final Report Monal Shadi

Monal Shadi edited this page Aug 15, 2018 · 3 revisions

Project Overview

Infrastructure and Automation Web aimed at automating processes of Systers Open Source and enhancing the quality of the projects. Apart from this it also aimed to develop consistent coding standards across all python repos. Under this project, automated builds and various integration were completed including selenium and flake8 to enhance the code quality.

Technologies Used

  1. Backend - Python-Django
  2. Automation tool: Selenium
  3. Testing framework: Django unit testing with selenium
  4. Linting tool: flake8

Project Goals

  1. Automated builds.
  2. Increase code coverage to 90%+.
  3. Complete automated tests.
  4. Standardize coding guidelines.

Accomplishments

  1. Initiating automated builds in green stage.
  2. Integration of selenium on automated build.
  3. Setup and configuration of geckodriver on the same to make selenium work.
  4. Increasing test coverage to from initial 42% to stable 97% with introduction of 270+ test cases.
  5. Testing all fields be it mandatory or non-mandatory as per models.
  6. Headless execution of automated tests by default.
  7. Using high values for invalid IDs for cases needing such IDs.
  8. Implementing full clean checks on all fields separately.
  9. Ensuring stability of tests.
  10. Checks on time in shift form.
  11. Creation of models with non-empty values for valid use cases.
  12. Fixing errors from python version bump.
  13. Beautifying logs by removing debug print statements.
  14. Better representation of structured data by using dictionaries instead of lists.
  15. Integration of flake8 lint tool on automated builds.
  16. Adding consistency in line endings, using LF as consistent across whole code.
  17. Standardizing python guidelines, enforcing the same in VMS an extent.
  18. Postorius update from the original mailman project and reflecting systers guidelines in the same.
  19. Documentation includes design document for the structure of automated tests, failing tests and a tutorial to explain automated testing to a beginner.

Find my work :

  1. VMS
  2. DevEnvironments
  3. postorius

Weekly Reports here Blogs here

Future Development Opportunities

  1. Adding consistency in design structure of automated tests.
  2. Enforcing current guidelines.
  3. Automated linting abilities.
  4. Containerizing the automated builds.
  5. Automating flake8 checks on the staged code.
  6. Improving code coverage to 100% by fixing failing tests.

Challenges

  1. Working on legacy code.
  2. Work dependency.
  3. Demo presentation, blogs and documentation.

Related Documentation.

These are all the documentation which was made during GSoC, might be needed in future.

  1. Python guideline draft: link
  2. Formatted python guideline: link
  3. Standard Setup config: link
  4. Original flake8 log before changes: link
  5. Script for changing the line endings from CRLF to LF: link
  6. Automated testing design document: link
  7. Automated testing failing tests: link
  8. Automated testing tutorial: link