#363 Use 'Compose.target_dir' property to handle None target_dir.
Merged 4 years ago by lsedlar. Opened 4 years ago by jkaluza.
jkaluza/odcs issuetracker  into  master

file modified
+15 -1
@@ -161,7 +161,7 @@ 

      celery_task_id = db.Column(db.String, nullable=True)

      # Target directory in which the compose is stored. This is `conf.target_dir`

      # by default.

-     target_dir = db.Column(db.String, nullable=True)

+     _target_dir = db.Column("target_dir", db.String, nullable=True)

  

      @property

      def on_default_target_dir(self):
@@ -170,6 +170,20 @@ 

          """

          return self.target_dir is None or self.target_dir == conf.target_dir

  

+     @property

+     def target_dir(self):

+         """

+         Returns the `self._target_dir` if set, otherwise `conf.target_dir`.

+ 

+         This is needed to keep backward compatibility with composes which do

+         not have the `Compose.target_dir` set.

+         """

+         return self._target_dir or conf.target_dir

+ 

+     @target_dir.setter

+     def target_dir(self, value):

+         self._target_dir = value

+ 

      @classmethod

      def create(cls, session, owner, source_type, source, results,

                 seconds_to_live, packages=None, flags=0, sigkeys=None,

file modified
+9 -1
@@ -23,7 +23,7 @@ 

  from datetime import datetime

  from datetime import timedelta

  

- from odcs.server import db

+ from odcs.server import db, conf

  from odcs.server.models import Compose

  from odcs.common.types import COMPOSE_RESULTS, COMPOSE_STATES

  from odcs.server.models import User
@@ -83,6 +83,14 @@ 

                           'target_dir': 'default'}

          self.assertEqual(c.json(True), expected_json)

  

+     def test_target_dir_none(self):

+         compose = Compose.create(

+             db.session, "me", PungiSourceType.MODULE, "testmodule-master",

+             COMPOSE_RESULTS["repository"], 3600)

+         compose.target_dir = None

+         db.session.commit()

+         self.assertEqual(compose.target_dir, conf.target_dir)

+ 

      def test_create_copy(self):

          """

          Tests that the Compose atttributes stored in database are copied

no initial comment

Pull-Request has been merged by lsedlar

4 years ago