Bug 865394 - case_id 1 is referenced in test_case_components but does not exist
case_id 1 is referenced in test_case_components but does not exist
Status: CLOSED WONTFIX
Product: TCMS
Classification: Other
Component: Database (Show other bugs)
Devel
Unspecified Unspecified
unspecified Severity low
: ---
: ---
Assigned To: jianchen
tools-bugs
:
Depends On:
Blocks:
  Show dependency treegraph
 
Reported: 2012-10-11 06:37 EDT by Chris Ward
Modified: 2012-11-02 07:50 EDT (History)
7 users (show)

See Also:
Fixed In Version:
Doc Type: Bug Fix
Doc Text:
Story Points: ---
Clone Of:
Environment:
Last Closed: 2012-11-02 07:50:24 EDT
Type: Bug
Regression: ---
Mount Type: ---
Documentation: ---
CRM:
Verified Versions:
Category: ---
oVirt Team: ---
RHEL 7.3 requirements from Atomic Host:
Cloudforms Team: ---


Attachments (Terms of Use)

  None (edit)
Description Chris Ward 2012-10-11 06:37:20 EDT
Description of problem:

According to .test_case_components, there should be a case_id 1


In [5]: e("SELECT component_id FROM Testopia.test_case_components WHERE case_id = 1")

In [6]: for a in f(): print a
(23005,)
(23006,)
(23007,)



But there isn't...


In [11]: e("SELECT True FROM Testopia.test_cases WHERE case_id = 1")

In [12]: for a in f(): print a
# None
Comment 1 jianchen 2012-10-11 23:05:01 EDT
A many-to-many relationship between case and component. test_case_components is a intermediary table which manage many-to-many relationships. Case(case_id = 1) was delete but the test_case_component records retain.
Comment 2 Chris Ward 2012-10-12 04:30:38 EDT
When a case_id (eg, 1) is deleted, shouldn't test_case_component map be updated as well to remove the relationship which no longer exists? (activity history should track the fact that it did exist in the past...and that it was removed)

Many-to-Many relationships should only map to existing data, no? 

Or is a mapping like this valid, where items are mapped that don't exist?

Doesn't make sense to me. I would think for sure when case_id was removed, all current references to case_id 1 should be removed as well... since there will be no reference to case_id 1 anymore...  or better yet, case_id should not have been removed, but rather set to 'disabled=True', no? If that happened, this problem of missing references wouldn't exist.


Anyway, i believe either case_id 1 should be restored and set to disabled or all references to it should be removed. 

Otherwise, how are we supposed to interpret mappings to things that don't exist?
Comment 3 jianchen 2012-10-14 22:59:07 EDT
(In reply to comment #2)
> When a case_id (eg, 1) is deleted, shouldn't test_case_component map be
> updated as well to remove the relationship which no longer exists? (activity
> history should track the fact that it did exist in the past...and that it
> was removed)
> 
> Many-to-Many relationships should only map to existing data, no? 
> 
> Or is a mapping like this valid, where items are mapped that don't exist?
> 
> Doesn't make sense to me. I would think for sure when case_id was removed,
> all current references to case_id 1 should be removed as well... since there
> will be no reference to case_id 1 anymore...  or better yet, case_id should
> not have been removed, but rather set to 'disabled=True', no? If that
> happened, this problem of missing references wouldn't exist.
> 
> 
> Anyway, i believe either case_id 1 should be restored and set to disabled or
> all references to it should be removed. 
> 
> Otherwise, how are we supposed to interpret mappings to things that don't
> exist?
testcase (eg, case_id 1) is the history record which migrate from testopia to TCMS.
In TCMS, case was removed, all current references to case (eg, component) was removed as well. 
You can write a new case and add component, if testcase delete, intermediary table(eg, test_case_components) record will delete.

Note You need to log in before you can comment on or make changes to this bug.