Skip to content

Commit

Permalink
Rename package_name -> name
Browse files Browse the repository at this point in the history
The dependencies do not have necessarily be on other packages,
especially for provides the name may be an executable or a library name.

The migration is provided for ease of testing. Before final merge the
migrations must be redone to create the table in a single migration.
  • Loading branch information
lubomir committed Sep 4, 2015
1 parent 2a5bec0 commit f6de78d
Show file tree
Hide file tree
Showing 5 changed files with 40 additions and 17 deletions.
4 changes: 2 additions & 2 deletions pdc/apps/package/filters.py
Original file line number Diff line number Diff line change
Expand Up @@ -20,8 +20,8 @@ def dependency_filter(type, queryset, value):
if not m:
raise FieldError('Unrecognized value for filter for {}'.format(type))
groups = m.groupdict()
queryset = queryset.filter(dependency__package_name=groups['name'], dependency__type=type).distinct()
for dep in models.Dependency.objects.filter(type=type, package_name=groups['name']):
queryset = queryset.filter(dependency__name=groups['name'], dependency__type=type).distinct()
for dep in models.Dependency.objects.filter(type=type, name=groups['name']):

if groups['op'] == '=':
if not dep.is_satisfied_by(groups['version']):
Expand Down
23 changes: 23 additions & 0 deletions pdc/apps/package/migrations/0006_auto_20150904_0918.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,23 @@
# -*- coding: utf-8 -*-
from __future__ import unicode_literals

from django.db import models, migrations


class Migration(migrations.Migration):

dependencies = [
('package', '0005_auto_20150901_0848'),
]

operations = [
migrations.RenameField(
model_name='dependency',
old_name='package_name',
new_name='name',
),
migrations.AlterUniqueTogether(
name='dependency',
unique_together=set([('type', 'name', 'version', 'comparison', 'rpm')]),
),
]
6 changes: 3 additions & 3 deletions pdc/apps/package/models.py
Original file line number Diff line number Diff line change
Expand Up @@ -146,18 +146,18 @@ class Dependency(models.Model):
DEPENDENCY_PARSER = re.compile(r'^(?P<name>[^ <>=]+)( *(?P<op>=|>=|<=|<|>) *(?P<version>[^ <>=]+))?$')

type = models.PositiveIntegerField(choices=DEPENDENCY_TYPE_CHOICES)
package_name = models.CharField(max_length=200)
name = models.CharField(max_length=200)
version = models.CharField(max_length=200, blank=True, null=True)
comparison = models.CharField(max_length=50, blank=True, null=True)
rpm = models.ForeignKey(RPM)

class Meta:
unique_together = (
('type', 'package_name', 'version', 'comparison', 'rpm')
('type', 'name', 'version', 'comparison', 'rpm')
)

def __unicode__(self):
base_str = self.package_name
base_str = self.name
if self.version:
base_str += ' {comparison} {version}'.format(comparison=self.comparison,
version=self.version)
Expand Down
2 changes: 1 addition & 1 deletion pdc/apps/package/serializers.py
Original file line number Diff line number Diff line change
Expand Up @@ -37,7 +37,7 @@ def _dep_to_internal(self, type, human_type, data):
if not m:
raise serializers.ValidationError('Dependency <{}> for <{}> has bad format.'.format(data, human_type))
groups = m.groupdict()
return models.Dependency(package_name=groups['name'], type=type,
return models.Dependency(name=groups['name'], type=type,
comparison=groups.get('op'), version=groups.get('version'))


Expand Down
22 changes: 11 additions & 11 deletions pdc/apps/package/tests.py
Original file line number Diff line number Diff line change
Expand Up @@ -101,7 +101,7 @@ def setUp(self):
srpm_nevra='test-pkg-1.0.1.x86_64',
filename='dummy')
for type in [t[0] for t in models.Dependency.DEPENDENCY_TYPE_CHOICES]:
rpm.dependency_set.create(package_name='pkg', version=version,
rpm.dependency_set.create(name='pkg', version=version,
type=type, comparison=op)

#
Expand Down Expand Up @@ -346,9 +346,9 @@ def setUp(self):
srpm_nevra='test-pkg-1.0.1.x86_64',
filename='dummy')
for type in [t[0] for t in models.Dependency.DEPENDENCY_TYPE_CHOICES]:
rpm.dependency_set.create(package_name='pkg', version='1.0',
rpm.dependency_set.create(name='pkg', version='1.0',
type=type, comparison='>=')
rpm.dependency_set.create(package_name='pkg', version='3.0',
rpm.dependency_set.create(name='pkg', version='3.0',
type=type, comparison='<')

def test_filter_with_range_match_requires(self):
Expand Down Expand Up @@ -428,9 +428,9 @@ def setUp(self):

def _create_deps(self):
models.Dependency.objects.create(type=models.Dependency.SUGGESTS,
package_name='suggested', rpm_id=1)
name='suggested', rpm_id=1)
models.Dependency.objects.create(type=models.Dependency.CONFLICTS,
package_name='conflicting', rpm_id=1)
name='conflicting', rpm_id=1)

def test_create_rpm_with_deps(self):
data = {'name': 'fake_bash', 'version': '1.2.3', 'epoch': 0,
Expand All @@ -449,7 +449,7 @@ def test_create_rpm_with_deps(self):
data.update({'linked_composes': []})
self.assertDictEqual(dict(response.data), data)
self.assertEqual(7, models.Dependency.objects.count())
with_version = models.Dependency.objects.get(package_name='recommended')
with_version = models.Dependency.objects.get(name='recommended')
self.assertEqual(with_version.comparison, '=')
self.assertEqual(with_version.version, '0.1.0')
self.assertNumChanges([1])
Expand Down Expand Up @@ -479,9 +479,9 @@ def test_put_to_rpm_with_none(self):

def test_put_to_overwrite_existing(self):
models.Dependency.objects.create(type=models.Dependency.SUGGESTS,
package_name='suggested', rpm_id=1)
name='suggested', rpm_id=1)
models.Dependency.objects.create(type=models.Dependency.CONFLICTS,
package_name='conflicting', rpm_id=1)
name='conflicting', rpm_id=1)
data = {'name': 'bash',
'epoch': 0,
'version': '1.2.3',
Expand All @@ -498,7 +498,7 @@ def test_put_to_overwrite_existing(self):
self.assertIsNone(dep.comparison)
self.assertIsNone(dep.version)
self.assertEqual(dep.rpm.pk, 1)
self.assertEqual(dep.package_name, 'required-package')
self.assertEqual(dep.name, 'required-package')
self.assertEqual(dep.type, models.Dependency.REQUIRES)
self.assertNumChanges([1])

Expand All @@ -511,7 +511,7 @@ def test_patch_to_rpm_with_none(self):
self.assertIsNone(dep.comparison)
self.assertIsNone(dep.version)
self.assertEqual(dep.rpm.pk, 1)
self.assertEqual(dep.package_name, 'required-package')
self.assertEqual(dep.name, 'required-package')
self.assertEqual(dep.type, models.Dependency.REQUIRES)
self.assertNumChanges([1])

Expand All @@ -525,7 +525,7 @@ def test_patch_to_overwrite_existing(self):
self.assertIsNone(dep.comparison)
self.assertIsNone(dep.version)
self.assertEqual(dep.rpm.pk, 1)
self.assertEqual(dep.package_name, 'required-package')
self.assertEqual(dep.name, 'required-package')
self.assertEqual(dep.type, models.Dependency.REQUIRES)
self.assertNumChanges([1])

Expand Down

0 comments on commit f6de78d

Please sign in to comment.