Repository: oppia/oppia

Issue:
Finish writing remaining backend tests
## Note:  As it was getting hard to maintain the long conversastion thread in this issue we have moved this issue to #6550

_This is intended as a starter project for newer contributors._

We want to implement backend tests for all parts of the code that are missing them. For each file mentioned below, the parts missing can be identified by generating a coverage report (see [this wiki page](https://github.com/oppia/oppia/wiki/Writing-backend-tests)).

A basic understanding of Python and the codebase would be a suggested requirement for this issue. If you have trouble trying to figure out something in the codebase, take a look at [Analyzing the Codebase](https://github.com/oppia/oppia/wiki/Analyzing-the-codebase).

If you'd like to help with this issue, please select a file from the list below, and comment on the issue that you'd be taking it up, and submit a PR after writing tests for the file. You can also submit a PR which has partially completed tests for a file, if the file is too extensive to test in a single PR. Once the PR is submitted, you can tick the checkboxes.

(For guidance on how tests should be structured, please see [this wiki page](https://github.com/oppia/oppia/wiki/Writing-backend-tests#guidelines-for-writing-good-tests).)

----

The following files have been tested partially, but do not have 100% coverage. Any of these files can be taken up and tested comprehensively. (Note that the link after each file points to its coverage report on Codecov.)

 - [ ] core.controllers.admin ([coverage report](https://codecov.io/gh/oppia/oppia/tree/develop/core/controllers))
 - [ ] core.controllers.base ([coverage report](https://codecov.io/gh/oppia/oppia/tree/develop/core/controllers)) 
 - [ ] core.controllers.classifier ([coverage report](https://codecov.io/gh/oppia/oppia/tree/develop/core/controllers))
 - [ ] core.controllers.creator_dashboard ([coverage report](https://codecov.io/gh/oppia/oppia/tree/develop/core/controllers)) @lilithxxx (19th March 2019)
 - [ ] core.controllers.editor ([coverage report](https://codecov.io/gh/oppia/oppia/tree/develop/core/controllers))
 - [ ] core.controllers.email_dashboard ([coverage report](https://codecov.io/gh/oppia/oppia/tree/develop/core/controllers))
 - [ ] core.controllers.feedback ([coverage report](https://codecov.io/gh/oppia/oppia/tree/develop/core/controllers))
 - [ ] core.controllers.learner_dashboard ([coverage report](https://codecov.io/gh/oppia/oppia/tree/develop/core/controllers)) @manyaagarwal (1 April 2019)
 - [ ] core.controllers.library ([coverage report](https://codecov.io/gh/oppia/oppia/tree/develop/core/controllers)) 
 - [ ] core.controllers.pages ([coverage report](https://codecov.io/gh/oppia/oppia/tree/develop/core/controllers))  @netajik 
 - [ ] core.controllers.profile ([coverage report](https://codecov.io/gh/oppia/oppia/tree/develop/core/controllers)) 
 - [ ] core.controllers.reader ([coverage report](https://codecov.io/gh/oppia/oppia/tree/develop/core/controllers)) 
 - [ ] core.controllers.resources ([coverage report](https://codecov.io/gh/oppia/oppia/tree/develop/core/controllers))
 - [ ] core.controllers.story_editor ([coverage report](https://codecov.io/gh/oppia/oppia/tree/develop/core/controllers)) 
 - [ ] core.controllers.suggestion ([coverage report](https://codecov.io/gh/oppia/oppia/tree/develop/core/controllers)) 
 - [ ] core.controllers.topic_editor ([coverage report](https://codecov.io/gh/oppia/oppia/tree/develop/core/controllers))
 - [ ] core.controllers.translator ([coverage report](https://codecov.io/gh/oppia/oppia/tree/develop/core/controllers)) 

 - [ ] core.domain.acl_decorators ([coverage report](https://codecov.io/gh/oppia/oppia/tree/develop/core/domain))
 - [ ] core.domain.activity_jobs_one_off ([coverage report](https://codecov.io/gh/oppia/oppia/tree/develop/core/domain))
 - [ ] core.domain.acl_decorators ([coverage report](https://codecov.io/gh/oppia/oppia/tree/develop/core/domain))
 - [ ] core.domain.classifier_domain ([coverage report](https://codecov.io/gh/oppia/oppia/tree/develop/core/domain))
 - [ ] core.domain.classifier_services ([coverage report](https://codecov.io/gh/oppia/oppia/tree/develop/core/domain))
 - [ ] core.domain.collection_domain ([coverage report](https://codecov.io/gh/oppia/oppia/tree/develop/core/domain))
 - [ ] core.domain.collection_services ([coverage report](https://codecov.io/gh/oppia/oppia/tree/develop/core/domain)) 
 - [ ] core.domain.config_domain ([coverage report](https://codecov.io/gh/oppia/oppia/tree/develop/core/domain))
 - [ ] core.domain.config_services ([coverage report](https://codecov.io/gh/oppia/oppia/tree/develop/core/domain))
 - [ ] core.domain.event_services ([coverage report](https://codecov.io/gh/oppia/oppia/tree/develop/core/domain))
 - [ ] core.domain.exp_domain ([coverage report](https://codecov.io/gh/oppia/oppia/tree/develop/core/domain)) 
 - [ ] core.domain.exp_jobs_one_off ([coverage report](https://codecov.io/gh/oppia/oppia/tree/develop/core/domain))
 - [ ] core.domain.exp_services ([coverage report](https://codecov.io/gh/oppia/oppia/tree/develop/core/domain))
 - [ ] core.domain.feedback_jobs_continuous ([coverage report](https://codecov.io/gh/oppia/oppia/tree/develop/core/domain))
 - [ ] core.domain.feedback_services ([coverage report](https://codecov.io/gh/oppia/oppia/tree/develop/core/domain))
 - [ ] core.domain.fs_domain ([coverage report](https://codecov.io/gh/oppia/oppia/tree/develop/core/domain))
 - [ ] core.domain.html_validation_service ([coverage report](https://codecov.io/gh/oppia/oppia/tree/develop/core/domain)) @ShubhamBansal1997 (7th March 2019)
 - [ ] core.domain.learner_progress_services ([coverage report](https://codecov.io/gh/oppia/oppia/tree/develop/core/domain)) @ezl-13 
 - [ ] core.domain.obj_services ([coverage report](https://codecov.io/gh/oppia/oppia/tree/develop/core/domain)) 
 - [ ] core.domain.param_domain ([coverage report](https://codecov.io/gh/oppia/oppia/tree/develop/core/domain)) @nikhilmudholka  (PR at #6264)
 - [ ] core.domain.question_services ([coverage report](https://codecov.io/gh/oppia/oppia/tree/develop/core/domain))
 - [ ] core.domain.rating_services ([coverage report](https://codecov.io/gh/oppia/oppia/tree/develop/core/domain))
 - [ ] core.domain.recommendation_jobs_one_off ([coverage report](https://codecov.io/gh/oppia/oppia/tree/develop/core/domain))
 - [ ] core.domain.rights_manager ([coverage report](https://codecov.io/gh/oppia/oppia/tree/develop/core/domain))
 - [ ] core.domain.search_services ([coverage report](https://codecov.io/gh/oppia/oppia/tree/develop/core/domain))
 - [ ] core.domain.skill_domain ([coverage report](https://codecov.io/gh/oppia/oppia/tree/develop/core/domain))
 - [ ] core.domain.skill_services ([coverage report](https://codecov.io/gh/oppia/oppia/tree/develop/core/domain))
 - [ ] core.domain.stats_domain ([coverage report](https://codecov.io/gh/oppia/oppia/tree/develop/core/domain))
 - [ ] core.domain.stats_jobs_continuous ([coverage report](https://codecov.io/gh/oppia/oppia/tree/develop/core/domain))
 - [ ] core.domain.stats_jobs_one_off ([coverage report](https://codecov.io/gh/oppia/oppia/tree/develop/core/domain)) 
 - [ ] core.domain.stats_services ([coverage report](https://codecov.io/gh/oppia/oppia/tree/develop/core/domain))
 - [ ] core.domain.story_domain ([coverage report](https://codecov.io/gh/oppia/oppia/tree/develop/core/domain))
 - [ ] core.domain.story_services ([coverage report](https://codecov.io/gh/oppia/oppia/tree/develop/core/domain))
 - [ ] core.domain.subtopic_page_domain ([coverage report](https://codecov.io/gh/oppia/oppia/tree/develop/core/domain)) @anubhavsinha98 (No date of assignment)
 - [ ] core.domain.subtopic_page_services ([coverage report](https://codecov.io/gh/oppia/oppia/tree/develop/core/domain)) @anubhavsinha98 (No date of assignment)
 - [ ] core.domain.suggestion_registry ([coverage report](https://codecov.io/gh/oppia/oppia/tree/develop/core/domain)) @abhaygupta97 (No date of assignment)
 - [ ] core.domain.suggestion_services ([coverage report](https://codecov.io/gh/oppia/oppia/tree/develop/core/domain))
 - [ ] core.domain.summary_services ([coverage report](https://codecov.io/gh/oppia/oppia/tree/develop/core/domain))
 - [ ] core.domain.topic_domain ([coverage report](https://codecov.io/gh/oppia/oppia/tree/develop/core/domain))
 - [ ] core.domain.topic_services ([coverage report](https://codecov.io/gh/oppia/oppia/tree/develop/core/domain))
 - [ ] core.domain.user_jobs_continuous ([coverage report](https://codecov.io/gh/oppia/oppia/tree/develop/core/domain))
 - [ ] core.domain.user_jobs_one_off ([coverage report](https://codecov.io/gh/oppia/oppia/tree/develop/core/domain))
 - [ ] core.domain.user_query_jobs_one_off ([coverage report](https://codecov.io/gh/oppia/oppia/tree/develop/core/domain))
 - [ ] core.domain.user_services ([coverage report](https://codecov.io/gh/oppia/oppia/tree/develop/core/domain))
 - [ ] core.jobs ([coverage report](https://codecov.io/gh/oppia/oppia/tree/develop/core))

 - [ ] core.platform.email.gae_email_services ([coverage report](https://codecov.io/gh/oppia/oppia/tree/develop/core/platform/email)) @siddhantkhandelwal (PR at #6335)
 - [ ] core.platform.image.gae_image_services ([coverage report](https://codecov.io/gh/oppia/oppia/tree/develop/core/platform))
 - [ ] core.platform.search.gae_search_services ([coverage report](https://codecov.io/gh/oppia/oppia/tree/develop/core/platform/search)) @lilithxxx (19th March 2019)

 - [ ] core.storage.base_model.gae_models ([coverage report](https://codecov.io/gh/oppia/oppia/tree/develop/core/storage/base_model))
 - [ ] core.storage.classifier.gae_models ([coverage report](https://codecov.io/gh/oppia/oppia/tree/develop/core/storage/classifier))
 - [ ] core.storage.collection.gae_models ([coverage report](https://codecov.io/gh/oppia/oppia/tree/develop/core/storage/collection)) 
 - [ ] core.storage.email.gae_models ([coverage report](https://codecov.io/gh/oppia/oppia/tree/develop/core/storage/email))  
 - [ ] core.storage.exploration.gae_models ([coverage report](https://codecov.io/gh/oppia/oppia/tree/develop/core/storage/exploration)) @sophiewu6 (25 March 2019)
 - [ ] core.storage.feedback.gae_models ([coverage report](https://codecov.io/gh/oppia/oppia/tree/develop/core/storage/feedback))
 - [ ] core.storage.file.gae_models ([coverage report](https://codecov.io/gh/oppia/oppia/tree/develop/core/storage/file))
 - [ ] core.storage.question.gae_models ([coverage report](https://codecov.io/gh/oppia/oppia/tree/develop/core/storage/question))
 - [ ] core.storage.statistics.gae_models ([coverage report](https://codecov.io/gh/oppia/oppia/tree/develop/core/storage/statistics)) 
 - [ ] core.storage.user.gae_models ([coverage report](https://codecov.io/gh/oppia/oppia/tree/develop/core/storage/user))

- [ ] scripts.custom_lint_checks (62%) ([coverage report](https://codecov.io/gh/oppia/oppia/tree/develop/scripts))

---

**Completed:** 
  - [x] core.controllers.tasks -- @ctao5660
 - [x] core.controllers.collection_viewer ([coverage report](https://codecov.io/gh/oppia/oppia/tree/develop/core/controllers)) @jacoblipech 
 - [x] core.controllers.custom_landing_pages @gurungrahul2
 - [x] core.controllers.concept_card_viewer (92%) @xuanluong #5741
- [x] core.storage.skill.gae_models @sshou14 
- [x] core.controllers.recent_commits @sshou14 - #5551
- [x] core.controllers.skill_editor @xuanluong - #5686
- [x] core.controllers.topic_viewer @xuanluong - #5742
- [x] core.controllers.topics_and_skills_dashboard (96%) -- @xuanluong
- [x] core.domain.activity_domain @apb7 - #5194 
- [x] core.domain.calculation_registry @dawsoneliasen - #5391
 - [x] core.domain.learner_playlist_services @ezl-13 
- [x] core.domain.user_domain @unit-00 - #5380
- [x] core.platform.app_identity.gae_app_identity_services @neoliteconsultant - #5439
- [x] core.platform.memcache.gae_memcache_services @lilithxxx - #5355
 - [x] core.platform.models @varun-tandon  - # 6263
- [x] core.platform.taskqueue.gae_taskqueue_services @nalinbhardwaj
- [x] core.platform.users.gae_current_user_services @hemant0308 - #5563
- [x] core.storage.audit.gae_models @LanJosh - #5512
- [x] core.storage.collection.gae_models @LanJosh  - #5357
- [x] core.storage.config.gae_models  @dawsoneliasen 
- [x] core.storage.exploration.gae_models @sshou14  - #5552
- [X] core.storage.job.gae_models @sshou14 - #5433
- [X] core.storage.story.gae_models  @JoyLubega  - #5644
- [X] core.storage.topic.gae_models @tonadev - #5727
- [X] jinja_utils (87%) @hemant0308 -- #5582
 - [x] core.controllers.collection_editor @jacoblipech (10th March 2019)
 - [x] core.domain.learner_progress_domain -  @dchen97 #5859
 - [x] core.domain.question_domain (93%) - @rafalk342 #5887 
 - [x] core.domain.email_jobs_one_off (91%) @anubhavsinha98 
 - [x] core.platform.email.mailgun_email_services (42%) @ulloaluis #6133
 - [x] core.storage.file.gae_models (100%) @ankita240796 
 - [x] core.domain.collection_jobs_one_off (87%) @abhaygupta97 #6061
- [X] core.domain.email_manager @siddhantkhandelwal #6306 
- [X] schema_utils (96%) @ulloaluis  #6432 
-  [X] core.controllers.learner_dashboard ([coverage report](https://codecov.io/gh/oppia/oppia/tree/develop/core/controllers)) @varun-tandon (Upto 85%)
 - [x] core.controllers.question_editor ([coverage report](https://codecov.io/gh/oppia/oppia/tree/develop/core/controllers)) @ujjwalgulecha (#6217)


Discussion:
Hi @1995YogeshSharma, I'd like to implement backend tests for core.platform.models
Ok, assigned that to you.
I would like to work on **core.platform.users.gae_current_user_services** .
But I have a doubt..
How can we test GAE (Google App Engine) functionalities..??
HI @hemant0308, I have assigned that file to you.

You should go through the wiki pages linked in the issue description. I think that would make you clear on how to implement tests.


Please assign  core.controllers.tasks to me
Done -- go ahead, @mharelick :)
Hi! I would like to implement tests for core.domain.config_services
Hi @FinalHopee , I've assigned you for `core.domain.config_services`.
Another request for -- core.domain.learner_progress_domain
Hi @FinalHopee, assigned you :) 
Can I take a shot at writing the tests for core.domain.calculation_registry ?
Hi @dawsoneliasen, assigned you! 
Hi please assign core.platform.memcache.gae_memcache_services to me
Hi @lilithxxx, welcome to oppia, I think you haven't filled the survey yet, would you mind doing that (asked [here](https://github.com/oppia/oppia/wiki/Contributing-code-to-Oppia#setting-things-up) in 2nd bullet) after that I'll assign you for the ` core.platform.memcache.gae_memcache_services`. Thanks!
@DubeySandeep done
NB: I added @LanJosh to core.storage.audit.gae_models and core.storage.collection.gae_models on 20 July, he's planning to get these done (maybe with others!) by 27 July. (This comment is just for keeping track of when the assignment happened.)
@lilithxxx, I have assigned you for `core.platform.memcache.gae_memcache_services`.
Hi hello! May I be assigned `user_domain`?

Done! Assigned you :)
Hi, may I be assign to core.controllers.custom_landing_pages 
Hi @nindyahapsari, :) I've assigned you to `core.controllers.custom_landing_pages`. :)
Hi @prakharchoudhary, any updates on `core.platform.models`?
Hi,

I would like to write tests for core.platform.app_identity.gae_app_identity_services
Hi @neoliteconsultant, I have assigned you to core.platform.app_identity.gae_app_identity_services
Hi, I'd like to write tests for core.storage.job.gae_models.
Sounds good, thanks @sshou14. Assigned you!
I'm almost done with my assigned ticket. Can I write one more test for core.controllers.recent_commits if no one else is working on it? thanks!
Hi @sshou14, sounds good, thanks! Go for it :)  I've assigned you.
can you tell me what we have to do in file 
core.platform.taskqueue.gae_taskqueue_services

i cant understand
I'd like to work on the core.storage.config.gae_models test!
Hi @dawsoneliasen, assigned. Thanks!
Hi! Would like to work on core.platform.taskqueue.gae_taskqueue_services :-)
Hm, I think @nalinbhardwaj has been working on that (see #5451). Pick another one?

(Sorry that the list wasn't updated! I'll fix that.)
@seanlip   core.platform.transactions.gae_transaction_services then?
Sounds good, thanks! Assigned you.
@seanlip Can I take file.gae_models instead of transaction models?
Yep, assigned you. Thanks!
hey, can i work on core.controllers.custom_landing_pages
Deassigning @nindyahapsari from custom_landing_pages. Assigned @binaryman008 . Good luck!
Hi, I'd like to work also on core.storage.exploration.gae_models.
Hi @sshou14,  I've assigned you to `core.storage.exploration.gae_models.` you can start working! :)
Hi, i'd like to work on core.storage.skill.gae_models. thanks!
@sshou14 I haved assigned `core.storage.skill.gae_models` to you. Thanks!
Hi @DubeySandeep , Can I give a try for core.storage.recommendations.gae_models?
@son-vyas I have assigned core.storage.recommendations.gae_models to you. Best of luck!
Hi
I would like to work on **jinja_utils**
@hemant0308 I have assigned `jinja_utils` to you. Thanks for taking it up 👍 
Hello @hoangviet1993 
There is protected method in jinja_utils.
how to write tests for it.
the linter shows warning W0212.
Is there any way to overcome.
Hello, I would like to work on  `core.storage.story.gae_models`
Hi @JoyLubega , I have assigned you `core.storage.story.gae_models`. Welcome to Oppia!
@hemant0308 's question has been answered in related PR
@mharelick, any update on `controller.task` test? 
I hope to get it done this weekend. 

> On Aug 28, 2018, at 4:22 PM, Sandeep Dubey <notifications@github.com> wrote:
> 
> @mharelick <https://github.com/mharelick>, any update on controller.task test?
> 
> —
> You are receiving this because you were mentioned.
> Reply to this email directly, view it on GitHub <https://github.com/oppia/oppia/issues/5134#issuecomment-416727482>, or mute the thread <https://github.com/notifications/unsubscribe-auth/AjxjZxpEE6hAhhJcmoJvmHu3X9lytK8eks5uVaaXgaJpZM4UzO23>.
> 


Hi @JoyLubega, any updates on  `core.storage.story.gae_models` file?
Hi @vibhor98, I believe am done with the tests. A PR will be up tommorrow

hello @vibhor98 , i dont have permission to push my work.
```remote: Permission to oppia/oppia.git denied to JoyLubega.
fatal: unable to access 'https://github.com/oppia/oppia.git/': The requested URL returned error: 403```
Hi @JoyLubega, I think you're directly pushing to upstream. Try pushing to your forked branch and then make a PR from there. Like: `git push origin <branch_name>`.  Hope it resolves your problem!
@vibhor98 my PR is up 

Hi, I would like to work on  core.storage.topic.gae_models
Hi @tonadev, I've assigned you  `core.storage.topic.gae_models`. Please go ahead! :)
Hi, i would like to work on  **scripts/dockstrings_checker.py**
Hi @netajik,  you've been assigned `oppia.main` in #4374. Please try to complete that first and then I'll assign you this file. Thanks! 
Hello @DubeySandeep, @vibhor98  can you assign me one?

Hi @vibhor98, i would like to work on scripts/dockstrings_checker.py
Hi @DiegoCaraballo, I've assigned you to `collection_editor` part of this issue! :)
Hi @netajik, I'm going to assign you for `scripts/dockstrings_checker.py` part of this issue!

@netajik, I can not find scripts/dockstrings_checker.py, can you please recheck and tell me a correct filename?
Hi @DubeySandeep , it's  oppia/scripts/docstrings_checker.
Thanks @DubeySandeep I start working on that.

Hi @DubeySandeep, I would like to work on writing the tests for core.controllers.skill_editor.
@xuanluong I have assigned you `core.controllers.skill_editor`. Thanks!
Hi, I'd like to work on core.controllers.reader. Thanks!
Thanks @sshou14 -- assigned you!
Hi, I would like to implement tests for core.controllers.admin.
Hi @MichJP, I've assigned you `core.controllers.admin`. Thanks! 
Hi @binaryman008 any updates on this issue?
I request to work on
 core.storage.user.gae_models
Added you, @JoyLubega. Thanks! 
Hi  @DubeySandeep, i would like work on core.controllers.pages.
 I would like work on core.controllers.pages. Can any one assign me .
Hi @netajik, I've assigned you `core.controllers.pages`. Thanks! 
Hi, can I work on core.domain.config_services?
@coobubba sure, go ahead.

~Edit: sorry, that one is already taken. The top comment has not been updated for this. I'll do it now.~

Edit: it looks like the person assigned for core.domain.config_services has abandoned the issue (https://github.com/oppia/oppia/pull/5341), so I'm assigning it to you, @coobubba. Thanks!
Hi @coobubba, before sending a PR, would you mind following the instructions [here](https://github.com/oppia/oppia/wiki/Contributing-code-to-Oppia#setting-things-up) first to get started, please? This will allow us to accept your code. Thanks!
deassigning @binaryman008 due to lack of response
Assigning @kirakrishnan to core.controllers.custom_landing_pages
Hey can you assign me to core.storage.exploration.gae_models 
Hi @seritaevelyn, assigned you to both core.storage.exploration.gae_models and core.storage.feedback.gae_models.
core.controllers.admin (71%)

@Shuayb1 core.controllers.admin seems to be assigned to @MichJP already. Can you pick some some other file? Thanks.
Picked core.controllers.editor

But not yet assigned to me
unassigned @FinalHopee, @mharelick (from  core.domain.learner_progress_domain, core.controllers.tasks)

@prakharchoudhary, @durgeshra any update on the assigned issue? 

I'm new here. Can I be assigned to **core.storage.file.gae_models** ? 
I would like to begin working immediately. Thanks
Hi @nswarup14, I've assigned you. Please go ahead. Thanks! 
Assigned core.controllers.tasks to @ctao5660
As said in the gitter chat, I'm working on core.storage.email.gae_models 
@kirakrishnan, @coobubba, @son-vyas, @MichJP, @DiegoCaraballo, @netajik, @seritaevelyn, @nswarup14, any update on this?

@sshou14 are you still working on `core.controllers.reader`?
@JoyLubega, are you working on `core.storage.user.gae_models`?

de-assigned @prakharchoudhary, @durgeshra!
@DubeySandeep not any more, you can de-assign me from the item.

Thanks!
@sshou14, Update the issue, thanks for the info. :)  
Hello Sandeep, I am still working on it. my Pc had crashed a week back. But
am okay now. Thanks.


On Mon, Nov 5, 2018 at 8:50 PM Sandeep Dubey <notifications@github.com>
wrote:

> @sshou14 <https://github.com/sshou14>, Update the issue, thanks for the
> info. :)
>
> —
> You are receiving this because you were mentioned.
> Reply to this email directly, view it on GitHub
> <https://github.com/oppia/oppia/issues/5134#issuecomment-435969217>, or mute
> the thread
> <https://github.com/notifications/unsubscribe-auth/AccUCHl7bCpTD_ug4zKEqMh4qR3geYr8ks5usHp6gaJpZM4UzO23>
> .
>

Hey Sandeep, I'm working on my issue, I've just been busy so I haven't had time to really focus. I should have some time this week to really buckle down. Thanks.
Hello @DubeySandeep, sorry for the delay. I will update within few days. Thank you.
Can I be assigned **core.controllers.learner_dashboard** please?
Hi @varun-tandon, I've assigned you to  `core.controllers.learner_dashboard`. :)
@netajik, @JoyLubega, @coobubba Thanks for the update!
@DubeySandeep did you assign me to core.storage.email.gae_models ?
@CelineDknp, Thanks for the ping, Sorry I missed your [comment](https://github.com/oppia/oppia/issues/5134#issuecomment-435690992) but now I've assigned you to `core.storage.email.gae_models`. 
Can I be assigned to `core.domain.learner_progress_domain`? Thanks!
Can I also be assigned to `core.platform.models`?
Hi @dchen97, I've assigned you to `core.platform.models`. 
Hi @DubeySandeep, I'm working on my issue. Thanks.
@DubeySandeep may I also be assigned to core.domain.learner_progress_domain? I've been working on it and am pretty much ready to make a PR if someone isn't already working on it.
Hi @dchen97, assigned you! Thanks! 
Hi @DubeySandeep, 
Can I be assigned **core.controllers.translator** please?
Hi @szhang9246, I've assigned you to  `core.controllers.translator`. 
/cc @vibhor98 
Hi @MichJP, any updates on this? Thanks! 
Hi @DubeySandeep!
Can I be assigned to `core.domain.question_domain`?
Hello @DubeySandeep, would review my code. 
Hi, I am going to attempt core.controllers.classifier. Thanks
Hello @apb7, would review my pull request . Thanks.
Hi @kashifsoofi,  I've assigned you to ` core.controllers.classifier`.

Hi @netajik, I cannot find your PR, have you followed the instruction given in the [wiki](https://github.com/oppia/oppia/wiki/Contributing-code-to-Oppia#setting-things-up)?  

/cc @nithusha21 
Hello @DubeySandeep, would review my code. And if any changes are required please notify to me. Thank you.
Hello @apb7, would review my pull request . Thanks.
@netajik Have you created a PR? I can't find one.
Hello @apb7, i was already created PR. If any thing wrong please tell me.
I checked your fork, and it seems you have pushed to your local branch, but can you follow the steps [here](https://github.com/oppia/oppia/wiki/Contributing-code-to-Oppia#instructions-for-making-a-code-change) to create a pull request from that branch into develop?
Thank  you @apb7, for your information i will check and create PR.
I will work on `core.domain.question_domain`. 
Ah unless @nithusha21 are you already working on `core.domain.question_domain`?
Hi @lokijuhy, I am not working on it. However I think, @rafalk342 just completed it in #5887. So I think the task is complete! Would you like to pick another file?
Hello @apb7, would review my pull request . Thanks.
Deassigning @kirakrishnan due to lack of activity. Feel free to take it up again if you want to work on it.
Hi @DubeySandeep , I would like to complete backend testing for core.domain.rating_services

Hi @varun-tandon, any update on this issue?

Hi @AJ-54, I've assigned you to `core.domain.rating_services` 
Hi, could I be assigned to core.storage.statistics.gae_models? Thank you!
Hello @DubeySandeep, would  you review my request.
de-assigning @seritaevelyn  due to lack of activity. Please comment here if you want it assigned again.
de-assigning @DiegoCaraballo  due to lack of activity. Feel free to comment here is you want it assigned again.
Hello @1995YogeshSharma, would review my request. Thank you
Hi @1995YogeshSharma, Please assign `core.storage.file.gae_models` to me. Thanks!
@ankita240796, I've assigned you to  `core.storage.file.gae_models`, you can start working on it. 
Hello @DubeySandeep, please assign me  core.storage.exploration.gae_models.


Hi @DubeySandeep @1995YogeshSharma can you please assign `core.domain.exp_jobs_one_off` to me, Thanks!
Hi @ankita240796, I've assigned you to `core.domain.exp_jobs_one_off` you can start working on it! :)
Thanks!
Thanks @DubeySandeep :smile: 
@DubeySandeep can I work on  core.platform.models ?
Hi @ankit-kumar-dwivedi, Yes sure, I'll assign you the `core.platform.models`.
@DubeySandeep I would like to improve the coverage of ```core.domain.email_jobs_one_off``` . Please assign it to me !

Hi @anubhavsinha98, I've assigned you the `core.domain.email_jobs_one_off`. You can add the tests for it. Thanks!
Hi,
Can core.controllers.feedback be assigned to me?
TIA :)
Hi @alti-tude, assigned that to you.
@alti-tude @1995YogeshSharma  I apologize for not informing but I had already started the work, if @alti-tude  hasn'et started I can continue my work on core.controllers.feedback, can I ?
@gurungrahul2, In future make sure that the issue is assigned to you either through comment or through assignee option. For this, since I have assigned him just a while back he might not have started.

De-assigning @alti-tude  and assigning @gurungrahul2. @alti-tude please choose another file and I'll assign that to you. 
> @gurungrahul2, In future make sure that the issue is assigned to you either through comment or through assignee option. For this, since I have assigned him just a while back he might not have started.
> 
> De-assigning @alti-tude and assigning @gurungrahul2. @alti-tude please choose another file and I'll assign that to you.

thanks, I will keep that in mind.
Hello, Would like to be assigned to story services core.domain.story_services. 
> @gurungrahul2, In future make sure that the issue is assigned to you either through comment or through assignee option. For this, since I have assigned him just a while back he might not have started.
> 
> De-assigning @alti-tude and assigning @gurungrahul2. @alti-tude please choose another file and I'll assign that to you.

So, can i be assigned to core.controllers.story_editor, then?
Hi @enriquejosepadilla, I've assigned you `core.domain.story_services`, you can start working on this now :). Thanks
Hi @alti-tude, I've assigned you `core.controllers.story_editor`,  go ahead :).
Thanks
Hello,
I would like to work on core.domain.skill_services. Could it be assigned to me?
@bansalnitish @1995YogeshSharma
HI,
I would like to improve the coverage of `core.controllers.suggestion`.Can it be assigned to me?
Hi @aryan2305 and @dev-ritik, assigned you both. Go ahead, thanks! 
Hi all (@ctao5660 @coobubba @dchen97 @son-vyas @MichJP @varun-tandon @Shuayb1 @varun-tandon @szhang9246 @ankit-kumar-dwivedi @CelineDknp @nswarup14 @JoyLubega). any update on the assigned issue?
Core.controllers is done(100%) I tried checking the box myself but I guess
it didn’t work. It has already been merged.

On Thu, Jan 3, 2019 at 3:26 PM Sandeep Dubey <notifications@github.com>
wrote:

> Hi all (@ctao5660 <https://github.com/ctao5660> @coobubba
> <https://github.com/coobubba> @dchen97 <https://github.com/dchen97>
> @son-vyas <https://github.com/son-vyas> @MichJP
> <https://github.com/MichJP> @varun-tandon
> <https://github.com/varun-tandon> @Shuayb1 <https://github.com/Shuayb1>
> @varun-tandon <https://github.com/varun-tandon> @szhang9246
> <https://github.com/szhang9246> @ankit-kumar-dwivedi
> <https://github.com/ankit-kumar-dwivedi> @CelineDknp
> <https://github.com/CelineDknp> @nswarup14 <https://github.com/nswarup14>
> @JoyLubega <https://github.com/JoyLubega>). any update on the assigned
> issue?
>
> —
> You are receiving this because you were mentioned.
> Reply to this email directly, view it on GitHub
> <https://github.com/oppia/oppia/issues/5134#issuecomment-451266577>, or mute
> the thread
> <https://github.com/notifications/unsubscribe-auth/AmFbxoiG4YDPvB9KHV1oyMk8l6jxEf0Qks5u_mdogaJpZM4UzO23>
> .
>

Hi, I would like to work on `core.domain.collection_jobs_one_off`, kindly assign it to me.
Hi @abhaygupta97, I've assigned you to  `core.domain.collection_jobs_one_off`. Thanks!

/cc @1995YogeshSharma  
@DubeySandeep : I've done my pull request but I'm waiting for feedback from two members and haven't heard of them since two weeks :/
@DubeySandeep kindly assign me to a service. Thanks.
Hi @rakshitkumarcse, I've assigned you to `core.domain.collection_services`. Thanks! :)
@DubeySandeep Thanks! :)
Hi, I would like to work on `core.domain.stats_jobs_one_off`. Can this file be assigned to me?
I'm new here.  I would like to work on `core.domain.obj_services` .Could it be assigned to me?
Is anyone working on core.controllers.admin, if not can i

Hello  I am new here and i want to contribute from where i can start ?
> Hi all (@ctao5660 @coobubba @dchen97 @son-vyas @MichJP @varun-tandon @Shuayb1 @varun-tandon @szhang9246 @ankit-kumar-dwivedi @CelineDknp @nswarup14 @JoyLubega). any update on the assigned issue?

Working on completing this. I've been talking to Sean Lip and working with him to resolve some issues I was having. Should have a PR for some improvement to coverage within 12-24 hrs.

Resolving patch:
diff --git a/core/storage/base_model/gae_models.py b/core/storage/base_model/gae_models.py
--- a/core/storage/base_model/gae_models.py
+++ b/core/storage/base_model/gae_models.py
@@ -61,6 +61,19 @@ class EntityNotFoundError(Exception):
         """Raised when no entity for a given id exists in the datastore."""
         pass
 
+    @staticmethod
+    def export_data(user_id):
+        """This method should be implemented by subclasses.
+
+        Args:
+            user_id: str. The ID of the user whose data should be exported.
+
+        Raises:
+            NotImplementedError: The method is not overwritten in derived
+                classes.
+        """
+        raise NotImplementedError
+
     @classmethod
     def get(cls, entity_id, strict=True):
         """Gets an entity by id.


Test patch: