Skip to content

Commit

Permalink
Merge 0cfdbf4 into f4908d4
Browse files Browse the repository at this point in the history
  • Loading branch information
UnDarkle committed Sep 18, 2019
2 parents f4908d4 + 0cfdbf4 commit b4d2732
Show file tree
Hide file tree
Showing 23 changed files with 191 additions and 55 deletions.
73 changes: 73 additions & 0 deletions .github/workflows/pythonpackage.yml
@@ -0,0 +1,73 @@
name: Python package

on: [push]

jobs:
windows_build:
runs-on: windows-latest
strategy:
fail-fast: false
max-parallel: 10
matrix:
python-version: [2.7, 3.6]
django-version: ["1.8", "1.9", "1.11", "2.0"]
exclude:
- python-version: 2.7
django-version: "2.0"
steps:
- uses: actions/checkout@v1
- name: Set up Python ${{ matrix.python-version }}
uses: actions/setup-python@v1
with:
python-version: ${{ matrix.python-version }}
- name: Install dependencies
run: |
pip install tox
- name: Tox
run: |
tox -v -e py${{ matrix.python-version }}-django${{ matrix.django-version }}
windows_py37:
runs-on: windows-latest
strategy:
fail-fast: false
max-parallel: 10
matrix:
python-version: [3.7]
django-version: ["2.0"]
steps:
- uses: actions/checkout@v1
- name: Set up Python ${{ matrix.python-version }}
uses: actions/setup-python@v1
with:
python-version: ${{ matrix.python-version }}
- name: Install dependencies
run: |
pip install tox
- name: Tox
run: |
tox -v -e py${{ matrix.python-version }}-django${{ matrix.django-version }}
linux_build:
runs-on: ubuntu-latest
strategy:
fail-fast: false
max-parallel: 10
matrix:
python-version: [2.7, 3.6, 3.7]
django-version: ["1.8", "1.9", "1.11", "2.0"]
exclude:
- python-version: 2.7
django-version: "2.0"
steps:
- uses: actions/checkout@v1
- name: Set up Python ${{ matrix.python-version }}
uses: actions/setup-python@v1
with:
python-version: ${{ matrix.python-version }}
- name: Install dependencies
run: |
pip install tox
- name: Tox
run: |
tox -v -e py${{ matrix.python-version }}-django${{ matrix.django-version }}
8 changes: 6 additions & 2 deletions .travis.yml
Expand Up @@ -14,10 +14,14 @@ env:
- DJANGO=1.9
- DJANGO=1.10
- DJANGO=1.11
- DJANGO=2.0
install: pip install tox coveralls
script: tox -e $(echo py$TRAVIS_PYTHON_VERSION | tr -d .)-django$DJANGO
script: tox -e py$TRAVIS_PYTHON_VERSION-django$DJANGO
after_success: coveralls
jobs:
matrix:
exclude:
- python: '2.7'
env: DJANGO=2.0
include:
- name: docs
stage: test
Expand Down
6 changes: 3 additions & 3 deletions appveyor.yml
@@ -1,8 +1,8 @@
environment:
matrix:
- TOXENV: "py27-django1.11"
- TOXENV: "py36-django1.11"
- TOXENV: "py37-django1.11"
- TOXENV: "py2.7-django1.11"
- TOXENV: "py3.6-django1.11"
- TOXENV: "py3.7-django2.0"

build: off

Expand Down
3 changes: 2 additions & 1 deletion setup.py
Expand Up @@ -34,7 +34,7 @@
url="https://github.com/gregoil/rotest",
keywords="testing system django unittest",
install_requires=[
'django>=1.8,<2',
'django>=1.8,<2.1',
'py',
'ipdbugger>=2.5',
'xlwt',
Expand Down Expand Up @@ -94,6 +94,7 @@
'Framework :: Django :: 1.9',
'Framework :: Django :: 1.10',
'Framework :: Django :: 1.11',
'Framework :: Django :: 2.0',
'Operating System :: Microsoft :: Windows',
'Operating System :: POSIX',
'Operating System :: Unix',
Expand Down
1 change: 1 addition & 0 deletions src/rotest/common/django_utils/settings.py
Expand Up @@ -42,6 +42,7 @@
'django.contrib.sessions.middleware.SessionMiddleware',
'django.contrib.messages.middleware.MessageMiddleware',
'django.contrib.auth.middleware.AuthenticationMiddleware']
MIDDLEWARE = MIDDLEWARE_CLASSES

# Set channel layers
CHANNEL_LAYERS = {
Expand Down
4 changes: 2 additions & 2 deletions src/rotest/common/django_utils/urls.py
Expand Up @@ -3,8 +3,8 @@
from django.contrib import admin
from django.conf.urls import include, url

admin.autodiscover()

urlpatterns = [
url(r'^rotest/api/', include("rotest.api.urls")),
url(r'^admin/', include(admin.site.urls)),
url(r'^admin/', admin.site.urls),
]
10 changes: 5 additions & 5 deletions src/rotest/core/migrations/0001_initial.py
Expand Up @@ -30,7 +30,7 @@ class Migration(migrations.Migration):
migrations.CreateModel(
name='CaseData',
fields=[
('generaldata_ptr', models.OneToOneField(parent_link=True, auto_created=True, primary_key=True, serialize=False, to='core.GeneralData')),
('generaldata_ptr', models.OneToOneField(parent_link=True, on_delete=models.CASCADE, auto_created=True, primary_key=True, serialize=False, to='core.GeneralData')),
('traceback', models.TextField(max_length=1000, blank=True)),
('exception_type', models.IntegerField(blank=True, null=True, choices=[(0, b'OK'), (1, b'Error'), (2, b'Failed'), (3, b'Skipped'), (4, b'Expected Failure'), (5, b'Unexpected Success')])),
('resources', models.ManyToManyField(to='management.ResourceData')),
Expand Down Expand Up @@ -67,7 +67,7 @@ class Migration(migrations.Migration):
migrations.CreateModel(
name='SuiteData',
fields=[
('generaldata_ptr', models.OneToOneField(parent_link=True, auto_created=True, primary_key=True, serialize=False, to='core.GeneralData')),
('generaldata_ptr', models.OneToOneField(parent_link=True, on_delete=models.CASCADE, auto_created=True, primary_key=True, serialize=False, to='core.GeneralData')),
],
options={
},
Expand All @@ -76,19 +76,19 @@ class Migration(migrations.Migration):
migrations.AddField(
model_name='rundata',
name='main_test',
field=models.ForeignKey(related_name='+', blank=True, to='core.GeneralData', null=True),
field=models.ForeignKey(related_name='+', blank=True, to='core.GeneralData', on_delete=models.CASCADE, null=True),
preserve_default=True,
),
migrations.AddField(
model_name='generaldata',
name='parent',
field=models.ForeignKey(related_name='tests', blank=True, to='core.GeneralData', null=True),
field=models.ForeignKey(related_name='tests', blank=True, to='core.GeneralData', on_delete=models.CASCADE, null=True),
preserve_default=True,
),
migrations.AddField(
model_name='generaldata',
name='run_data',
field=models.ForeignKey(related_name='tests', blank=True, to='core.RunData', null=True),
field=models.ForeignKey(related_name='tests', blank=True, to='core.RunData', on_delete=models.CASCADE, null=True),
preserve_default=True,
),
]
21 changes: 21 additions & 0 deletions src/rotest/core/migrations/0007_auto_20190911_0948.py
@@ -0,0 +1,21 @@
# -*- coding: utf-8 -*-
# Generated by Django 1.11.24 on 2019-09-11 09:48
from __future__ import unicode_literals

from django.db import migrations, models
import django.db.models.deletion


class Migration(migrations.Migration):

dependencies = [
('core', '0006_auto_20190408_0630'),
]

operations = [
migrations.AlterField(
model_name='rundata',
name='main_test',
field=models.ForeignKey(blank=True, null=True, on_delete=django.db.models.deletion.SET_NULL, related_name='+', to='core.GeneralData'),
),
]
6 changes: 3 additions & 3 deletions src/rotest/core/models/general_data.py
Expand Up @@ -30,7 +30,7 @@ class GeneralData(models.Model):
run_data (RunData): run data of the test.
"""
parent = models.ForeignKey('self', null=True, blank=True,
related_name='tests')
on_delete=models.CASCADE, related_name='tests')

(INITIALIZED, IN_PROGRESS, FINISHED) = list(range(3))

Expand All @@ -44,8 +44,8 @@ class GeneralData(models.Model):
end_time = models.DateTimeField(null=True)
success = models.NullBooleanField(null=True)

run_data = models.ForeignKey('core.RunData', null=True, blank=True,
related_name='tests')
run_data = models.ForeignKey('core.RunData', on_delete=models.CASCADE,
null=True, blank=True, related_name='tests')

class Meta(object):
"""Define the Django application for this model."""
Expand Down
2 changes: 1 addition & 1 deletion src/rotest/core/models/run_data.py
Expand Up @@ -31,7 +31,7 @@ class RunData(models.Model):
artifact_path = PathField(null=True, blank=True)
run_delta = models.NullBooleanField(default=False)
main_test = models.ForeignKey(GeneralData, null=True, blank=True,
related_name='+')
on_delete=models.SET_NULL, related_name='+')
user_name = NameField(null=True, blank=True)
config = models.TextField(blank=True, null=True, default="{}")

Expand Down
2 changes: 2 additions & 0 deletions src/rotest/management/__init__.py
@@ -1,3 +1,5 @@
"""Rotest management application."""
# pylint: disable=redefined-outer-name
from django.apps import AppConfig


Expand Down
7 changes: 4 additions & 3 deletions src/rotest/management/base_resource.py
Expand Up @@ -4,7 +4,7 @@
responsible for the resource static & dynamic information.
"""
# pylint: disable=too-many-instance-attributes,no-self-use,broad-except
# pylint: disable=protected-access,unused-argument
# pylint: disable=protected-access,unused-argument,ungrouped-imports
from __future__ import absolute_import

import sys
Expand All @@ -16,11 +16,12 @@
from attrdict import AttrDict
from future.utils import iteritems
from future.builtins import zip, object
from django.db.models.query_utils import DeferredAttribute

from rotest.common import core_log
from rotest.common.config import ROTEST_WORK_DIR
from rotest.common.utils import get_work_dir, get_class_fields
from rotest.management.models.resource_data import ResourceData, DataPointer
from rotest.management.models.resource_data import ResourceData

try:
from django.db.models.fields.related_descriptors import \
Expand Down Expand Up @@ -171,7 +172,7 @@ class fields, where the 'data' attribute in the declaration points
if isinstance(value, ForwardManyToOneDescriptor):
actual_kwargs[key] = getattr(self.data, value.field.name)

elif isinstance(value, DataPointer):
elif isinstance(value, DeferredAttribute):
actual_kwargs[key] = getattr(self.data, value.field_name)

sub_resource = sub_class(**actual_kwargs)
Expand Down
12 changes: 6 additions & 6 deletions src/rotest/management/migrations/0001_initial.py
Expand Up @@ -29,7 +29,7 @@ class Migration(migrations.Migration):
migrations.CreateModel(
name='ComplexResource',
fields=[
('baseresource_ptr', models.OneToOneField(parent_link=True, auto_created=True, primary_key=True, serialize=False, to='management.BaseResource')),
('baseresource_ptr', models.OneToOneField(parent_link=True, on_delete=models.CASCADE, auto_created=True, primary_key=True, serialize=False, to='management.BaseResource')),
],
options={
},
Expand All @@ -38,7 +38,7 @@ class Migration(migrations.Migration):
migrations.CreateModel(
name='DemoComplexResource',
fields=[
('complexresource_ptr', models.OneToOneField(parent_link=True, auto_created=True, primary_key=True, serialize=False, to='management.ComplexResource')),
('complexresource_ptr', models.OneToOneField(parent_link=True, on_delete=models.CASCADE, auto_created=True, primary_key=True, serialize=False, to='management.ComplexResource')),
('reset_flag', models.BooleanField(default=False)),
('validate_flag', models.NullBooleanField(default=None)),
('initialization_flag', models.BooleanField(default=False)),
Expand All @@ -50,7 +50,7 @@ class Migration(migrations.Migration):
migrations.CreateModel(
name='DemoResource',
fields=[
('baseresource_ptr', models.OneToOneField(parent_link=True, auto_created=True, primary_key=True, serialize=False, to='management.BaseResource')),
('baseresource_ptr', models.OneToOneField(parent_link=True, on_delete=models.CASCADE, auto_created=True, primary_key=True, serialize=False, to='management.BaseResource')),
('version', models.PositiveSmallIntegerField()),
('ip_address', models.IPAddressField()),
('mode', models.IntegerField(default=0, choices=[(0, b'Boot'), (1, b'Production')])),
Expand All @@ -65,7 +65,7 @@ class Migration(migrations.Migration):
migrations.CreateModel(
name='NonExistingResource',
fields=[
('baseresource_ptr', models.OneToOneField(parent_link=True, auto_created=True, primary_key=True, serialize=False, to='management.BaseResource')),
('baseresource_ptr', models.OneToOneField(parent_link=True, on_delete=models.CASCADE, auto_created=True, primary_key=True, serialize=False, to='management.BaseResource')),
],
options={
},
Expand All @@ -84,13 +84,13 @@ class Migration(migrations.Migration):
migrations.AddField(
model_name='democomplexresource',
name='demo1',
field=models.ForeignKey(related_name='demo_resource1', to='management.DemoResource'),
field=models.ForeignKey(related_name='demo_resource1', on_delete=models.CASCADE, to='management.DemoResource'),
preserve_default=True,
),
migrations.AddField(
model_name='democomplexresource',
name='demo2',
field=models.ForeignKey(related_name='demo_resource2', to='management.DemoResource'),
field=models.ForeignKey(related_name='demo_resource2', on_delete=models.CASCADE, to='management.DemoResource'),
preserve_default=True,
),
]
Expand Up @@ -16,7 +16,7 @@ class Migration(migrations.Migration):
migrations.AddField(
model_name='baseresource',
name='group',
field=models.ForeignKey(blank=True, to='auth.Group', null=True),
field=models.ForeignKey(blank=True, on_delete=models.CASCADE, to='auth.Group', null=True),
preserve_default=True,
),
]
Expand Up @@ -15,7 +15,7 @@ class Migration(migrations.Migration):
migrations.CreateModel(
name='InitializeTimeoutResource',
fields=[
('baseresource_ptr', models.OneToOneField(parent_link=True, auto_created=True, primary_key=True, serialize=False, to='management.BaseResource')),
('baseresource_ptr', models.OneToOneField(parent_link=True, on_delete=models.CASCADE, auto_created=True, primary_key=True, serialize=False, to='management.BaseResource')),
],
options={
},
Expand Down
Expand Up @@ -15,7 +15,7 @@ class Migration(migrations.Migration):
migrations.CreateModel(
name='FinalizeTimeoutResource',
fields=[
('baseresource_ptr', models.OneToOneField(parent_link=True, auto_created=True, primary_key=True, serialize=False, to='management.BaseResource')),
('baseresource_ptr', models.OneToOneField(parent_link=True, on_delete=models.CASCADE, auto_created=True, primary_key=True, serialize=False, to='management.BaseResource')),
],
options={
},
Expand Down
Expand Up @@ -34,7 +34,7 @@ class Migration(migrations.Migration):
migrations.CreateModel(
name='DemoResourceData',
fields=[
('resourcedata_ptr', models.OneToOneField(parent_link=True, auto_created=True, primary_key=True, serialize=False, to='management.ResourceData')),
('resourcedata_ptr', models.OneToOneField(parent_link=True, on_delete=models.CASCADE, auto_created=True, primary_key=True, serialize=False, to='management.ResourceData')),
('version', models.PositiveSmallIntegerField()),
('ip_address', models.IPAddressField()),
('mode', models.IntegerField(default=0, choices=[(0, b'Boot'), (1, b'Production')])),
Expand All @@ -52,13 +52,13 @@ class Migration(migrations.Migration):
migrations.CreateModel(
name='DemoComplexResourceData',
fields=[
('resourcedata_ptr', models.OneToOneField(parent_link=True, auto_created=True, primary_key=True, serialize=False, to='management.ResourceData')),
('resourcedata_ptr', models.OneToOneField(parent_link=True, on_delete=models.CASCADE, auto_created=True, primary_key=True, serialize=False, to='management.ResourceData')),
('reset_flag', models.BooleanField(default=False)),
('validate_flag', models.NullBooleanField(default=None)),
('finalization_flag', models.BooleanField(default=False)),
('initialization_flag', models.BooleanField(default=False)),
('demo1', models.ForeignKey(related_name='demo_resource1', to='management.DemoResourceData')),
('demo2', models.ForeignKey(related_name='demo_resource2', to='management.DemoResourceData')),
('demo1', models.ForeignKey(related_name='demo_resource1', on_delete=models.CASCADE, to='management.DemoResourceData')),
('demo2', models.ForeignKey(related_name='demo_resource2', on_delete=models.CASCADE, to='management.DemoResourceData')),
],
options={
},
Expand All @@ -67,7 +67,7 @@ class Migration(migrations.Migration):
migrations.AddField(
model_name='resourcedata',
name='group',
field=models.ForeignKey(blank=True, to='auth.Group', null=True),
field=models.ForeignKey(blank=True, on_delete=models.CASCADE, to='auth.Group', null=True),
preserve_default=True,
),
]

0 comments on commit b4d2732

Please sign in to comment.