Skip to content

Commit

Permalink
Add unit tests for models
Browse files Browse the repository at this point in the history
* Add unit tests for models
* Change models according to the unit tests
* Remove `CeleryScan` model class

Signed-off-by: Ranvir Singh ranvir.singh1114@gmail.com
  • Loading branch information
singh1114 committed Jul 5, 2017
1 parent ee86e0c commit 99a36d8
Show file tree
Hide file tree
Showing 6 changed files with 452 additions and 35 deletions.
62 changes: 46 additions & 16 deletions scanapp/models.py
Expand Up @@ -50,13 +50,19 @@ def __str__(self):

scan_type = models.CharField(max_length=20, choices=scan_types, default='URL')
is_complete = models.BooleanField()

class Meta:
verbose_name_plural = 'Scan Info'

class UserInfo(models.Model):
def __str__(self):
return self.user.username

user = models.OneToOneField(settings.AUTH_USER_MODEL, on_delete=models.CASCADE)
scan_info = models.ForeignKey(ScanInfo)

class Meta:
verbose_name_plural = 'User Info'


class URLScanInfo(models.Model):
Expand All @@ -66,29 +72,37 @@ def __str__(self):
scan_info = models.ForeignKey(ScanInfo)
URL = models.URLField(max_length=2000)

class Meta:
verbose_name_plural = 'URL Scan Info'


class LocalScanInfo(models.Model):
def __str__(self):
return self.folder_name

scan_info = models.ForeignKey(ScanInfo)
folder_name = models.CharField(max_length=200)


class Meta:
verbose_name_plural = 'Local Scan Info'

class CodeInfo(models.Model):
def __str__(self):
return self.total_code_files
return str(self.total_code_files)

scan_info = models.ForeignKey(ScanInfo)
total_code_files = models.IntegerField(null=True, blank=True)
code_size = models.IntegerField(null=True, blank=True, default=0)

class Meta:
verbose_name_plural = 'Code Info'


# ScanResult will store the most basic results of the scan
# Single result for each scan
class ScanResult(models.Model):
def __str__(self):
return self.total_errors
return str(self.total_errors)

code_info = models.ForeignKey(CodeInfo)
scanned_json_result = JSONField()
Expand All @@ -107,7 +121,9 @@ def __str__(self):

scan_result = models.ForeignKey(ScanResult)
file_path = models.CharField(max_length=400)


class Meta:
verbose_name_plural = 'Scan File Info'

# Multiple or no result for each file
class License(models.Model):
Expand All @@ -127,31 +143,41 @@ def __str__(self):
owner = models.CharField(max_length=500)
dejacode_url = models.URLField(max_length=2000)

class Meta:
verbose_name_plural = 'Licenses'


class MatchedRule(models.Model):
def __str__(self):
return self.license_choice
return str(self.license_choice)

license = models.ForeignKey(License)
license_choice = models.BooleanField()
identifier = models.CharField(max_length=200)


class Meta:
verbose_name_plural = 'Matched Rule'

class MatchedRuleLicenses(models.Model):
def __str__(self):
return self.license

matched_rule = models.ForeignKey(MatchedRule)
license = models.CharField(max_length=200)

class Meta:
verbose_name_plural = 'Matched Rule License'

class Copyright(models.Model):
def __str__(self):
return self.start_line
return str(self.start_line)

scan_file_info = models.ForeignKey(ScanFileInfo)
start_line = models.IntegerField()
end_line = models.IntegerField()


class Meta:
verbose_name_plural = 'Copyrights'

class CopyrightHolders(models.Model):
def __str__(self):
Expand All @@ -160,6 +186,9 @@ def __str__(self):
copyright = models.ForeignKey(Copyright)
holder = models.CharField(max_length=400)

class Meta:
verbose_name_plural = 'Copyright Holders'


class CopyrightStatements(models.Model):
def __str__(self):
Expand All @@ -168,6 +197,8 @@ def __str__(self):
copyright = models.ForeignKey(Copyright)
statement = models.CharField(max_length=500)

class Meta:
verbose_name_plural = 'Copyright Statements'

class CopyrightAuthor(models.Model):
def __str__(self):
Expand All @@ -176,6 +207,8 @@ def __str__(self):
copyright = models.ForeignKey(Copyright)
author = models.CharField(max_length=200)

class Meta:
verbose_name_plural = 'Copyright Authors'

class Package(models.Model):
def __str__(self):
Expand All @@ -184,19 +217,16 @@ def __str__(self):
scan_file_info = models.ForeignKey(ScanFileInfo)
package = models.CharField(max_length=1000)

class Meta:
verbose_name_plural = 'Packages'

class ScanError(models.Model):
def __str__(self):
return self.scan_error

scan_file_info = models.ForeignKey(ScanFileInfo)
scan_error = models.CharField(max_length=1000)

class Meta:
verbose_name_plural = 'Scan Errors'


class CeleryScan(models.Model):
scan_id = models.AutoField(primary_key=True)
scan_results = models.CharField(max_length=20000, null=True, blank=True)
is_complete = models.BooleanField(default=False)

def __str__(self):
return str(self.scan_id)
1 change: 0 additions & 1 deletion scanapp/tasks.py
Expand Up @@ -28,7 +28,6 @@
import subprocess
import requests

from scanapp.models import CeleryScan
from scanapp.models import ScanInfo
from scanapp.models import UserInfo
from scanapp.models import URLScanInfo
Expand Down
17 changes: 0 additions & 17 deletions scanapp/tests.py

This file was deleted.

Empty file added scanapp/tests/__init__.py
Empty file.

0 comments on commit 99a36d8

Please sign in to comment.