Esempio n. 1
0
def test_recordeditview_post_submit(client_admin, mock_create_record,
                                    mock_delete_record, record_data,
                                    signed_record_data):
    record_data['rtype'] = 'AAAA'
    response = client_admin.post(reverse('zoneeditor:zone_record_edit',
                                         kwargs={'zone': 'example.com.'}),
                                 data={
                                     'identifier': signed_record_data,
                                     **record_data
                                 })
    TestCase().assertRedirects(response,
                               '/zones/example.com.',
                               fetch_redirect_response=False)
    mock_delete_record.assert_called_once_with(
        zone='example.com.',
        name='mail.example.com.',
        rtype='MX',
        content='0 example.org.',
    )
    mock_create_record.assert_called_once_with(
        zone='example.com.',
        name='mail.example.com.',
        rtype='AAAA',
        ttl=300,
        content='0 example.org.',
    )
Esempio n. 2
0
def _run_test(serializer_cls, model_cls, sql_queries=1, *,
              excluded_fields=None,
              extra_select_fields=None,
              extra_prefetch_fields=None, ) -> ReturnList:
    """
    Boilerplate for running the tests
    :return: the serializer data to assert one
    """

    print(
        f'Running test with serializer "{serializer_cls.__name__}" and model {model_cls.__name__}'
    )
    case = TestCase()
    request = APIRequestFactory().get("/FOO")

    with case.assertNumQueries(sql_queries):
        print(excluded_fields, extra_select_fields, extra_prefetch_fields)
        prefetched_queryset = prefetch(model_cls.objects.all(), serializer_cls, excluded_fields=excluded_fields,
                                       extra_select_fields=extra_select_fields,
                                       extra_prefetch_fields=extra_prefetch_fields)
        serializer_instance = serializer_cls(
            instance=prefetched_queryset, many=True, context={"request": request}
        )
        print("Data returned:")
        pprint_result(serializer_instance.data)
        return serializer_instance.data
Esempio n. 3
0
def test_zonedeleteview_post_no_confirm(client_admin, mock_pdns_delete_zone, signed_example_com):
    response = client_admin.post(reverse('zoneeditor:zone_delete'), data={
        'identifier': signed_example_com,
        'confirm': 'false',
    })
    TestCase().assertRedirects(response, '/zones', fetch_redirect_response=False)
    mock_pdns_delete_zone.assert_not_called()
Esempio n. 4
0
def _django_db_fixture_helper(transactional, request, _django_cursor_wrapper):
    if is_django_unittest(request.node):
        return

    if transactional:
        _django_cursor_wrapper.enable()

        def flushdb():
            """Flush the database and close database connections"""
            # Django does this by default *before* each test
            # instead of after.
            from django.db import connections
            from django.core.management import call_command

            for db in connections:
                call_command('flush', verbosity=0,
                             interactive=False, database=db)
            for conn in connections.all():
                conn.close()

        request.addfinalizer(_django_cursor_wrapper.disable)
        request.addfinalizer(flushdb)
    else:
        if 'live_server' in request.funcargnames:
            return
        from django.test import TestCase

        _django_cursor_wrapper.enable()
        _django_cursor_wrapper._is_transactional = False
        case = TestCase(methodName='__init__')
        case._pre_setup()
        request.addfinalizer(_django_cursor_wrapper.disable)
        request.addfinalizer(case._post_teardown)
Esempio n. 5
0
def dj_asserts():
    from django.test import TestCase
    testcase = TestCase()

    class Asserts:
        html_equal = testcase.assertHTMLEqual

    return Asserts()
Esempio n. 6
0
def djasserts():
    from django.test import TestCase
    testcase = TestCase()

    class Asserts:
        redirects = testcase.assertRedirects

    return Asserts()
Esempio n. 7
0
def compare_projects_files(orig_file, new_file):
    with open(orig_file) as orig:
        orig_json = json.load(orig)
        with open(new_file) as exported:
            exported_json = json.load(exported)
            test = TestCase()
            test.maxDiff = None
            test.assertDictEqual(orig_json, exported_json)
Esempio n. 8
0
def test_zonedeleteview_post_granted(client, mock_pdns_delete_zone, zone_data, db_zone):
    assert Zone.objects.filter(name='example.com.').exists()
    response = client.post(reverse('zoneeditor:zone_delete'), data={
        'identifier': zone_data,
        'confirm': 'true',
    })
    TestCase().assertRedirects(response, '/zones', fetch_redirect_response=False)
    mock_pdns_delete_zone.assert_called_once_with('example.com.')
    assert not Zone.objects.filter(name='example.com.').exists()
Esempio n. 9
0
def assertRecordMetadataEqual(serialized, record_metadata_instance):
    t = TestCase()
    t.assertDictEqual(serialized['json'], record_metadata_instance.json)
    t.assertEquals(serialized['id'], str(record_metadata_instance.id))
    t.assertEquals(serialized['created'].split('Z')[0],
                   record_metadata_instance.created.isoformat().split('+')[0])
    t.assertEquals(serialized['updated'].split('Z')[0],
                   record_metadata_instance.updated.isoformat().split('+')[0])
    t.assertEquals(serialized['version_id'],
                   record_metadata_instance.version_id)
Esempio n. 10
0
def compare_models(models_json, format_=None):
    # The Prosoul database must only contains the models imported
    exported_models_json = fetch_models()
    if format_ == 'ossmeter':
        exported_models_json = gl2ossmeter(exported_models_json)
    elif format_ == 'alambic':
        exported_models_json = gl2alambic(exported_models_json)
    test = TestCase()
    test.maxDiff = None
    test.assertDictEqual(models_json, exported_models_json)
    logging.info("Check completed")
Esempio n. 11
0
def test_zonecreateview_post_granted(client, tenant, mock_create_zone,
                                     zone_name):
    response = client.post(reverse('zoneeditor:zone_create'),
                           data={
                               'name': zone_name,
                               'tenants': tenant.pk,
                           })
    TestCase().assertRedirects(response,
                               '/zones/example.co.uk.',
                               target_status_code=302)
    mock_create_zone.assert_called_with(kind='Native',
                                        name='example.co.uk.',
                                        nameservers=[])
Esempio n. 12
0
def test_recorddeleteview_post_no_confirm(client_admin,
                                          mock_pdns_delete_record,
                                          signed_record_data_example_com):
    response = client_admin.post(reverse('zoneeditor:zone_record_delete',
                                         kwargs={'zone': 'example.com.'}),
                                 data={
                                     'identifier':
                                     signed_record_data_example_com,
                                     'confirm': 'false',
                                 })
    TestCase().assertRedirects(response,
                               '/zones/example.com./records',
                               fetch_redirect_response=False)
    mock_pdns_delete_record.assert_not_called()
Esempio n. 13
0
    def test_non_ascii_message(self):
        try:
            self.explode_with_unicode_message()
        except ValueError:
            err = sys.exc_info()
        else:
            self.fail()

        self.exml_result._add_tb_to_test(TestCase('fail'), self.result_element,
                                         err)

        output = self.write_element(self.result_element)

        self.assert_(output)
Esempio n. 14
0
def test_recorddeleteview_granted(client, mock_pdns_delete_record,
                                  record_data):
    response = client.post(reverse('zoneeditor:zone_record_delete',
                                   kwargs={'zone': 'example.com.'}),
                           data={
                               'identifier': record_data,
                               'confirm': 'true',
                           })
    TestCase().assertRedirects(response,
                               '/zones/example.com./records',
                               fetch_redirect_response=False)
    mock_pdns_delete_record.assert_called_once_with('example.com.',
                                                    'www.example.com.', 'A',
                                                    '1.1.1.1')
Esempio n. 15
0
    def __init__(self, purpose_price, users):
        self.test_case = TestCase()
        self.purpose_price = purpose_price

        def create_account(number):
            account = Account(user=User.objects.create_user(
                get_username(number), '*****@*****.**', 'qwerty12'))
            account.save()
            return account

        for key in users:
            create_account(key)
        Funds.objects.create(owner=get_account(1),
                             purpose='TestParty',
                             purpose_price=self.purpose_price)
Esempio n. 16
0
def _run_test(serializer_cls, model_cls, sql_queries=1) -> ReturnList:
    """
    Boilerplate for running the tests
    :return: the serializer data to assert one
    """

    print(
        f'Running test with serializer "{serializer_cls.__name__}" and model {model_cls.__name__}'
    )
    case = TestCase()
    with case.assertNumQueries(sql_queries):
        prefetched_queryset = prefetch(model_cls.objects.all(), serializer_cls)
        serializer_instance = serializer_cls(instance=prefetched_queryset,
                                             many=True)
        print("Data returned:")
        pprint_result(serializer_instance.data)
        return serializer_instance.data
Esempio n. 17
0
def test_recordcreateview_post_granted(client, mock_create_record):
    response = client.post(reverse('zoneeditor:zone_record_create',
                                   kwargs={'zone': 'example.com.'}),
                           data={
                               'name': 'mail.anexample.com.example.com.',
                               'rtype': 'MX',
                               'ttl': 300,
                               'content': '0 example.org.',
                           })
    TestCase().assertRedirects(response,
                               '/zones/example.com.',
                               fetch_redirect_response=False)
    mock_create_record.assert_called_once_with(
        zone='example.com.',
        name='mail.anexample.com.example.com.',
        rtype='MX',
        ttl=300,
        content='0 example.org.',
    )
Esempio n. 18
0
    def __init__(self):
        self.test_case = TestCase()
        self.message = "Default message"

        def create_account(number):
            account = Account(user=User.objects.create_user(
                get_username(number), '*****@*****.**', 'qwerty12'))
            account.save()
            return account

        users = [1, 2]
        for key in users:
            create_account(key)
        self.funds = Funds.objects.create(owner=get_account(1),
                                          purpose='TestParty',
                                          purpose_price=10.0)
        self.due = Due.objects.create(funds=self.funds,
                                      account=get_account(1),
                                      for_account=get_account(2),
                                      amount=20)
Esempio n. 19
0
def assertOrcidIdentityEqual(serialized,
                             orcid_identity_instance,
                             has_token=False):
    t = TestCase()
    t.assertEquals(serialized['id'], orcid_identity_instance.id)
    t.assertEquals(serialized['orcid_value'],
                   str(orcid_identity_instance.orcid_value))
    t.assertEquals(serialized['useridentity_user_id'],
                   orcid_identity_instance.useridentity_user_id)
    t.assertEquals(serialized['client_id'],
                   str(orcid_identity_instance.client_id))
    t.assertDictEqual(serialized['extra_data'],
                      orcid_identity_instance.extra_data)
    t.assertEquals(serialized['user'], orcid_identity_instance.user.id)
    if has_token:
        try:
            plain = orcid_identity_instance.remote_token.access_token_plain
        except ObjectDoesNotExist:
            plain = None
        t.assertEquals(serialized['token'], plain)
Esempio n. 20
0
 def setUpTestData(cls):
     cls.Client = TestCase()
     cls.user1 = User.objects.create_user('test_user1',
                                          email='*****@*****.**',
                                          password='******')
     cls.user2 = User.objects.create_user('test_user2',
                                          email='*****@*****.**',
                                          password='******')
     cls.device2 = Device.objects.create(device_id=2,
                                         name='test_device1',
                                         user=cls.user1)
     cls.device3 = Device.objects.create(device_id=3,
                                         name='test_device2',
                                         user=cls.user2)
     cls.device4 = Device.objects.create(device_id=4,
                                         name='test_device3',
                                         user=cls.user1,
                                         is_active=False)
     cls.device5 = Device.objects.create(device_id=5,
                                         name='test_device3',
                                         user=cls.user2)
Esempio n. 21
0
def db(request, _django_db_setup, _django_cursor_wrapper):
    """Require a django test database

    This database will be setup with the default fixtures and will
    have the transaction management disabled.  At the end of the test
    the transaction will be rolled back to undo any changes to the
    database.  This is more limited then the ``transaction_db``
    resource but faster.

    If both this and ``transaction_db`` are requested then the
    database setup will behave as only ``transaction_db`` was
    requested.
    """
    if ('transactional_db' not in request.funcargnames
            and 'live_server' not in request.funcargnames
            and not is_django_unittest(request.node)):

        from django.test import TestCase

        _django_cursor_wrapper.enable()
        case = TestCase(methodName='__init__')
        case._pre_setup()
        request.addfinalizer(_django_cursor_wrapper.disable)
        request.addfinalizer(case._post_teardown)
Esempio n. 22
0
def test_case():
    return TestCase('run')
Esempio n. 23
0
def response_is_html(response, title=None):
    test = TestCase()
    test.assertTrue(response.content.startswith(b'<!DOCTYPE html>'))
    if title is not None:
        test.assertContains(response, '<title>%s</title>' % (title,))
    test.assertTrue(response.content.endswith(b'</html>'))
Esempio n. 24
0
def error_code_test(errors, expect_flag, code):
    errors = list(errors)
    for error in errors:
        if error.code == code:
            if expect_flag:
                return True
            else:
                raise ValueError("Code %r found in %r, did not expect it" % (code, errors))
    if expect_flag:
        raise ValueError("Code %r not found in %r, did expect it" % (code, errors))
    return True


def error_exists(errors, code):
    return error_code_test(errors, True, code)


def error_does_not_exist(errors, code):
    return error_code_test(errors, False, code)


def very_recently(datetime, how_recently=1):
    return (abs(datetime - now()).total_seconds() < how_recently)


_test_case = TestCase('setUp')  # gotta pass something to the ctor.

assert_contains = _test_case.assertContains
assert_not_contains = _test_case.assertNotContains
Esempio n. 25
0
# Copyright (C) 2019  The Software Heritage developers
# See the AUTHORS file at the top-level directory of this distribution
# License: GNU Affero General Public License version 3, or any later version
# See top-level LICENSE file for more information

# https://github.com/pytest-dev/pytest-django/pull/709 proposes a more
# generic way to expose all asserts but it makes mypy unhappy.
# So explicitly expose the assertions we need for swh-web tests to
# avoid mypy errors
"""
Expose some Django assertions to be used with pytest
"""

from django.test import TestCase

_test_case = TestCase("run")

assert_template_used = _test_case.assertTemplateUsed
assert_contains = _test_case.assertContains
assert_not_contains = _test_case.assertNotContains
Esempio n. 26
0
def test_zonedeleteview_post_unauthenicated(client):
    url = reverse('zoneeditor:zone_delete')
    response = client.post(url)
    TestCase().assertRedirects(response, f'/accounts/login/?next={url}')
Esempio n. 27
0
 def method(self, *args, **kwargs):
     try:
         testcase = self._testcase
     except AttributeError:
         testcase = self._testcase = TestCase()
     return func(testcase, *args, **kwargs)
Esempio n. 28
0
"""
Dynamically load all Django assertion cases and expose them for importing.
"""
from functools import wraps
from django.test import (TestCase, SimpleTestCase, LiveServerTestCase,
                         TransactionTestCase)

test_case = TestCase('run')


def _wrapper(name):
    func = getattr(test_case, name)

    @wraps(func)
    def assertion_func(*args, **kwargs):
        return func(*args, **kwargs)

    return assertion_func


__all__ = []
assertions_names = set()
assertions_names.update(
    set(attr for attr in vars(TestCase) if attr.startswith('assert')),
    set(attr for attr in vars(SimpleTestCase) if attr.startswith('assert')),
    set(attr for attr in vars(LiveServerTestCase)
        if attr.startswith('assert')),
    set(attr for attr in vars(TransactionTestCase)
        if attr.startswith('assert')),
)
from django.test import TestCase

_test_case = TestCase()

assert_contains = _test_case.assertContains
assert_not_contains = _test_case.assertNotContains
Esempio n. 30
0
def test_recorddeleteview_get_unauthenicated(client):
    url = reverse('zoneeditor:zone_record_delete',
                  kwargs={'zone': 'example.com.'})
    response = client.get(url)
    TestCase().assertRedirects(response, f'/accounts/login/?next={url}')