Fixes and updation for products and repository related  testcases.

1. Include use of factory functions
2. Added 2 new testcases to product and repositories test modules
3. Added support for `force_context` to forcefully set the org or loc context, when working with testcases that require working with multiple org, that is selecting/changing multiple orgs in a single testcase.
[PEP 257](http://legacy.python.org/dev/peps/pep-0257/) provides an excellent standard for writing docstrings. Additionally, we are using Sphinx to auto-generate API documentation from our docstrings. As a result, I'd encourage the use of [Sphinx directives](http://sphinx-doc.org/domains.html#the-python-domain). Could you try to abide by those style guidelines? Doing so makes it easier for me to concentrate on *what* you're saying, not *how* you're saying it. For example:

```python
"""Optionally configure the context.

If '@' is not present in ``context_text``, configure the context. When
configuring the context, use ``org`` and ``loc``. If ``force_context`` is
``True``, set the ``org`` and ``loc`` context again. This method is useful when,
for example, creating entities with the same name but different organizations.

:param ?sometype? session: brief description
:param ?sometype? org: brief description
:param ?sometype? loc: brief description
:param ?sometype? force_context: brief description
:return: brief description
:rtype: ?sometype?

"""
```