Skip to content

Commit 983adff

Browse files
committed
Rename command #539
* Create test Signed-off-by: Jono Yang <[email protected]>
1 parent 62bce7b commit 983adff

File tree

2 files changed

+79
-9
lines changed

2 files changed

+79
-9
lines changed

minecode/management/commands/requeue_outstanding_scannableuris.py minecode/management/commands/reset_outstanding_scannableuris.py

+12-9
Original file line numberDiff line numberDiff line change
@@ -24,17 +24,20 @@
2424

2525

2626
class Command(VerboseCommand):
27-
help = "Check for outstanding ScannableURIs and requeue them."
27+
help = "Check for outstanding ScannableURIs and reset them."
2828

2929
def handle(self, *args, **options):
3030
"""
31-
Check for outstanding ScannableURIs and requeue them.
31+
Check for outstanding ScannableURIs and reset them.
3232
"""
33+
reset_outstanding_scannableuris()
3334

34-
outstanding_scannable_uris = ScannableURI.objects.get_outstanding_scannable_resource_uris()
35-
if outstanding_scannable_uris.exists():
36-
logger.info(f"Resetting {outstanding_scannable_uris.count()} ScannableURIs")
37-
for scannable_uri in outstanding_scannable_uris:
38-
if TRACE:
39-
logger.debug(f"Resetting ScannableURI for: {scannable_uri}")
40-
scannable_uri.reset()
35+
36+
def reset_outstanding_scannableuris():
37+
outstanding_scannable_uris = ScannableURI.objects.get_outstanding_scannable_uris()
38+
if outstanding_scannable_uris.exists():
39+
logger.info(f"Resetting {outstanding_scannable_uris.count()} ScannableURIs")
40+
for scannable_uri in outstanding_scannable_uris:
41+
if TRACE:
42+
logger.debug(f"Resetting ScannableURI for: {scannable_uri}")
43+
scannable_uri.reset()
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,67 @@
1+
#
2+
# Copyright (c) nexB Inc. and others. All rights reserved.
3+
# purldb is a trademark of nexB Inc.
4+
# SPDX-License-Identifier: Apache-2.0
5+
# See http://www.apache.org/licenses/LICENSE-2.0 for the license text.
6+
# See https://github.com/aboutcode-org/purldb for support or download.
7+
# See https://aboutcode.org for more information about nexB OSS projects.
8+
#
9+
10+
import datetime
11+
12+
from django.test import TestCase as DjangoTestCase
13+
from django.utils import timezone
14+
15+
from minecode.management.commands import reset_outstanding_scannableuris
16+
from minecode.models import ScannableURI
17+
from minecode.utils_test import JsonBasedTesting
18+
from packagedb.models import Package
19+
20+
21+
class ResetScannableURITests(JsonBasedTesting, DjangoTestCase):
22+
def test_process_request(self):
23+
purl_str = "pkg:maven/org.apache.twill/[email protected]"
24+
download_url = "https://repo1.maven.org/maven2/org/apache/twill/twill-core/0.12.0/twill-core-0.12.0.jar"
25+
26+
p1 = Package.objects.create(
27+
type="maven",
28+
namespace="org.apache.twill",
29+
name="twill-core",
30+
version="0.12.0",
31+
download_url=download_url
32+
)
33+
time = timezone.now()
34+
s1 = ScannableURI.objects.create(
35+
uri=download_url,
36+
package=p1,
37+
scan_status=ScannableURI.SCAN_IN_PROGRESS,
38+
wip_date=time,
39+
scan_date=time,
40+
)
41+
42+
purl_str2 = "pkg:maven/org.apache.twill/[email protected]"
43+
download_url2 = "https://repo1.maven.org/maven2/org/apache/twill/twill-core/0.13.0/twill-core-0.13.0.jar"
44+
45+
time_delta = datetime.datetime.now() - datetime.timedelta(days=1.2)
46+
p2 = Package.objects.create(
47+
type="maven",
48+
namespace="org.apache.twill",
49+
name="twill-core",
50+
version="0.13.0",
51+
download_url=download_url2
52+
)
53+
s2 = ScannableURI.objects.create(
54+
uri=download_url2,
55+
package=p2,
56+
scan_status=ScannableURI.SCAN_IN_PROGRESS,
57+
scan_date=time_delta,
58+
wip_date=time_delta
59+
)
60+
61+
self.assertEqual(ScannableURI.SCAN_IN_PROGRESS, s1.scan_status)
62+
self.assertEqual(ScannableURI.SCAN_IN_PROGRESS, s2.scan_status)
63+
reset_outstanding_scannableuris.reset_outstanding_scannableuris()
64+
s1.refresh_from_db()
65+
s2.refresh_from_db()
66+
self.assertEqual(ScannableURI.SCAN_IN_PROGRESS, s1.scan_status)
67+
self.assertEqual(ScannableURI.SCAN_NEW, s2.scan_status)

0 commit comments

Comments
 (0)