@@ -1601,7 +1601,8 @@ def _set_topics_to_old_and_new(event):
1601
1601
model .controller .update_screen .assert_called_once_with ()
1602
1602
1603
1603
@pytest .mark .parametrize (
1604
- "event, to_vary_in_index" ,
1604
+ "event, to_vary_in_index, to_vary_in_message, expected_set_count_called,"
1605
+ "expected_star_count_called" ,
1605
1606
[
1606
1607
case (
1607
1608
{
@@ -1614,7 +1615,58 @@ def _set_topics_to_old_and_new(event):
1614
1615
"all_msg_ids" : {537286 , 537287 , 537288 },
1615
1616
"topic_msg_ids" : {205 : {"Test" : {537286 }}},
1616
1617
},
1617
- id = "stream_msg_deleted_from_all_msg" ,
1618
+ {537286 : {"flags" : ["read" ]}},
1619
+ False ,
1620
+ False ,
1621
+ id = "read_stream_msg_deleted_from_all_msg" ,
1622
+ ),
1623
+ case (
1624
+ {
1625
+ "message_id" : 537286 ,
1626
+ "message_type" : "stream" ,
1627
+ "stream_id" : 205 ,
1628
+ "topic" : "Test" ,
1629
+ },
1630
+ {
1631
+ "mentioned_msg_ids" : {537286 },
1632
+ "topic_msg_ids" : {205 : {"Test" : {537286 }}},
1633
+ },
1634
+ {537286 : {"flags" : ["read" , "mentioned" ]}},
1635
+ False ,
1636
+ False ,
1637
+ id = "read+mentioned_stream_msg_deleted_from_mentions" ,
1638
+ ),
1639
+ case (
1640
+ {
1641
+ "message_id" : 537286 ,
1642
+ "message_type" : "stream" ,
1643
+ "stream_id" : 205 ,
1644
+ "topic" : "Test" ,
1645
+ },
1646
+ {
1647
+ "starred_msg_ids" : {537286 },
1648
+ "topic_msg_ids" : {205 : {"Test" : {537286 }}},
1649
+ },
1650
+ {537286 : {"flags" : ["read" , "starred" ]}},
1651
+ False ,
1652
+ True ,
1653
+ id = "read+starred_stream_msg_deleted_from_starred" ,
1654
+ ),
1655
+ case (
1656
+ {
1657
+ "message_id" : 537286 ,
1658
+ "message_type" : "stream" ,
1659
+ "stream_id" : 205 ,
1660
+ "topic" : "Test" ,
1661
+ },
1662
+ {
1663
+ "mentioned_msg_ids" : {537286 },
1664
+ "topic_msg_ids" : {205 : {"Test" : {537286 }}},
1665
+ },
1666
+ {537286 : {"flags" : ["wildcard_mentioned" ]}},
1667
+ True ,
1668
+ False ,
1669
+ id = "unread+wildcard_mentioned_stream_msg_deleted_from_mentioned" ,
1618
1670
),
1619
1671
case (
1620
1672
{
@@ -1626,7 +1678,26 @@ def _set_topics_to_old_and_new(event):
1626
1678
"private_msg_ids" : {537287 },
1627
1679
"private_msg_ids_by_user_ids" : {(5140 , 5179 ): {537287 }},
1628
1680
},
1629
- id = "rivate_msg_deleted_from_private_msgs" ,
1681
+ {537287 : {"flags" : []}},
1682
+ True ,
1683
+ False ,
1684
+ id = "unread_private_msg_deleted_from_private_msgs" ,
1685
+ ),
1686
+ case (
1687
+ {
1688
+ "message_id" : 537287 ,
1689
+ "message_type" : "private" ,
1690
+ "sender_id" : 5140 ,
1691
+ },
1692
+ {
1693
+ "private_msg_ids" : {537287 , 537288 },
1694
+ "starred_msg_ids" : {537287 },
1695
+ "private_msg_ids_by_user_ids" : {(5140 , 5179 ): {537287 }},
1696
+ },
1697
+ {537287 : {"flags" : ["read" , "starred" ]}},
1698
+ False ,
1699
+ True ,
1700
+ id = "starred_private_msg_deleted_from_starred+private_msgs" ,
1630
1701
),
1631
1702
case (
1632
1703
{
@@ -1641,7 +1712,10 @@ def _set_topics_to_old_and_new(event):
1641
1712
(5179 , 5140 , 5180 ): {537288 },
1642
1713
},
1643
1714
},
1644
- id = "group_msg_deleted_from_private_msgs" ,
1715
+ {537288 : {"flags" : ["read" , "wildcard_mentioned" ]}},
1716
+ False ,
1717
+ False ,
1718
+ id = "read+wildcard_mentioned_group_msg_deleted_from_private_msgs" ,
1645
1719
),
1646
1720
],
1647
1721
)
@@ -1652,23 +1726,35 @@ def test__handle_delete_message_event(
1652
1726
empty_index ,
1653
1727
event ,
1654
1728
to_vary_in_index ,
1729
+ to_vary_in_message ,
1730
+ expected_set_count_called ,
1731
+ expected_star_count_called ,
1655
1732
):
1656
1733
event ["type" ] = "delete_message"
1657
1734
message_id = event ["message_id" ]
1658
1735
1659
1736
model .index = empty_index
1660
1737
model .index .update (to_vary_in_index )
1738
+ model .index ["messages" ].update (to_vary_in_message )
1661
1739
1662
1740
mocker .patch (MODEL + "._update_rendered_view" )
1741
+ set_count = mocker .patch ("zulipterminal.model.set_count" )
1663
1742
self .controller .view .message_view = mocker .Mock (log = [])
1664
1743
1665
1744
assert message_id in model .index ["messages" ].keys ()
1666
1745
1667
1746
model ._handle_delete_message_event (event )
1668
1747
1748
+ if expected_set_count_called :
1749
+ set_count .assert_called_once_with ([message_id ], self .controller , - 1 )
1750
+ if expected_star_count_called :
1751
+ self .controller .view .starred_button .update_count .assert_called
1752
+
1669
1753
assert message_id not in model .index ["messages" ]
1670
1754
assert message_id not in model .index ["all_msg_ids" ]
1671
1755
assert message_id not in model .index ["edited_messages" ]
1756
+ assert message_id not in model .index ["mentioned_msg_ids" ]
1757
+ assert message_id not in model .index ["starred_msg_ids" ]
1672
1758
if event ["message_type" ] == "private" :
1673
1759
assert message_id not in model .index ["private_msg_ids" ]
1674
1760
assert message_id not in model .index ["private_msg_ids_by_user_ids" ].values ()
0 commit comments