@@ -878,6 +878,33 @@ def test_dataset_api_update_private(self):
878878 dataset .reload ()
879879 self .assertEqual (dataset .private , True )
880880
881+ def test_dataset_api_update_published_at (self ):
882+ """It should allow setting published_at to control visibility"""
883+ user = self .login ()
884+ dataset = DatasetFactory (owner = user )
885+ original_published_at = dataset .published_at
886+ assert dataset .private is False
887+ assert dataset .published_at is not None
888+
889+ # Setting published_at to None makes the dataset private
890+ data = dataset .to_dict ()
891+ data ["published_at" ] = None
892+ response = self .put (url_for ("api.dataset" , dataset = dataset ), data )
893+ self .assert200 (response )
894+ dataset .reload ()
895+ assert dataset .published_at is None
896+ assert dataset .private is True
897+
898+ # Setting published_at to a date makes the dataset public
899+ new_date = "2024-06-15T10:30:00"
900+ data ["published_at" ] = new_date
901+ response = self .put (url_for ("api.dataset" , dataset = dataset ), data )
902+ self .assert200 (response )
903+ dataset .reload ()
904+ assert dataset .published_at is not None
905+ assert dataset .published_at .isoformat ().startswith ("2024-06-15" )
906+ assert dataset .private is False
907+
881908 def test_dataset_api_update_new_resource_with_extras (self ):
882909 """It should update a dataset with a new resource with extras"""
883910 user = self .login ()
0 commit comments